0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Классы в Java особым образом связаны с типами данных. Посмотрите на пример:</p>
1
<p>Классы в Java особым образом связаны с типами данных. Посмотрите на пример:</p>
2
<p>Каким будет реальный тип в данном случае? Классы, сами по себе, ведут себя как типы. Поэтому типом переменной user будет User, то есть так:</p>
2
<p>Каким будет реальный тип в данном случае? Классы, сами по себе, ведут себя как типы. Поэтому типом переменной user будет User, то есть так:</p>
3
<p>В Java все типы данных делятся на две категории: примитивные и ссылочные. К примитивным относятся все виды чисел, символы и логический тип данных (булеан). К ссылочным - классы, массивы, строки. В зависимости от категории, значительно меняется поведение кода и об этом нужно знать. В этом уроке мы разберем отличия между этими категориями и научимся правильно с ними работать.</p>
3
<p>В Java все типы данных делятся на две категории: примитивные и ссылочные. К примитивным относятся все виды чисел, символы и логический тип данных (булеан). К ссылочным - классы, массивы, строки. В зависимости от категории, значительно меняется поведение кода и об этом нужно знать. В этом уроке мы разберем отличия между этими категориями и научимся правильно с ними работать.</p>
4
<p>Для изучения нам понадобится пример какого-то класса, чьи объекты мы используем в примерах кода. Возьмем для простоты класс User с двумя полями и одним конструктором:</p>
4
<p>Для изучения нам понадобится пример какого-то класса, чьи объекты мы используем в примерах кода. Возьмем для простоты класс User с двумя полями и одним конструктором:</p>
5
<h2>Значение по умолчанию</h2>
5
<h2>Значение по умолчанию</h2>
6
<p>Примитивные данные всегда имеют значение, даже если они определяются без инициализации:</p>
6
<p>Примитивные данные всегда имеют значение, даже если они определяются без инициализации:</p>
7
<p>У ссылочных в качестве значения по умолчанию используется null. Это специальное значение, которое может быть использовано в качестве любого объекта</p>
7
<p>У ссылочных в качестве значения по умолчанию используется null. Это специальное значение, которое может быть использовано в качестве любого объекта</p>
8
<h2>Присваивание</h2>
8
<h2>Присваивание</h2>
9
<p>Примитивное значение всегда копируется при присваивании:</p>
9
<p>Примитивное значение всегда копируется при присваивании:</p>
10
<p>Ссылочные же данные не копируются. При присваивании переменные начинают указывать (ссылаться) на один и тот же объект:</p>
10
<p>Ссылочные же данные не копируются. При присваивании переменные начинают указывать (ссылаться) на один и тот же объект:</p>
11
<p>Больше всего это проявляется при передаче данных в методы и их возврате оттуда. Ссылочное значение передается по ссылке, а значит его можно изменить изнутри метода.</p>
11
<p>Больше всего это проявляется при передаче данных в методы и их возврате оттуда. Ссылочное значение передается по ссылке, а значит его можно изменить изнутри метода.</p>
12
<h2>Сравнение</h2>
12
<h2>Сравнение</h2>
13
<p>Примитивные данные сравниваются по значению. Пять всегда равно пяти, истина всегда равна истине:</p>
13
<p>Примитивные данные сравниваются по значению. Пять всегда равно пяти, истина всегда равна истине:</p>
14
<p>Ссылочные сравниваются по ссылкам, а не на основе содержимого. Объекты равны только сами себе. То что хранится внутри них - не важно.</p>
14
<p>Ссылочные сравниваются по ссылкам, а не на основе содержимого. Объекты равны только сами себе. То что хранится внутри них - не важно.</p>
15
<p>Иногда объекты все же нужно сравнивать между собой и определять равенство по каким-то признакам. Для этого есть решение и мы познакомимся с ним в следующих курсах.</p>
15
<p>Иногда объекты все же нужно сравнивать между собой и определять равенство по каким-то признакам. Для этого есть решение и мы познакомимся с ним в следующих курсах.</p>