HTML Diff
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>