Объектно-ориентированное программирование на Java. Платформа Java SE. Тимур Машнин
Чтение книги онлайн.

Читать онлайн книгу Объектно-ориентированное программирование на Java. Платформа Java SE - Тимур Машнин страница 37

СКАЧАТЬ для хранения адреса, где он будет хранить этот массив.

      И затем он занимает целую секцию памяти для какого-либо большого объекта.

      И, теперь у нас есть массив, находящийся в памяти, где одна из ячеек хранит адрес, где находятся реальные данные.

      Это и есть ссылка.

      Таким образом существует большое различие между примитивами и объектами.

      Примитивы хранятся непосредственно в памяти, как только вы создаете примитив.

      Они настолько малы, что это имеет смысл.

      Когда вы копируете переменную примитивного типа и меняете ее значение, первоначальное значение никак не меняется.

      Между ними нет реальной связи.

      Это будут две совершенно разные переменные.

      Как вы можете себе представить, объекты функционируют по-другому.

      Вместо того, чтобы выделять пространство для фактического значения, объекты занимают пространство в памяти для ссылки на место, где хранится информация объекта.

      Поэтому, если я создаю новый массив, а затем создаю другой массив, и устанавливаю его равным первому массиву, что копируется?

      Компьютер копирует ссылку.

      Теперь у меня есть две переменные, которые указывают на одну и ту же информацию.

      Поэтому, если я что-то изменяю в массиве z, изменится и массив y, и наоборот.

      Вы просто скопировали адрес, где находится информация.

      Поэтому, если я создам объект и передам его как параметр в метод, я передам ссылку или адрес.

      И любые изменения, которые я сделаю в этом методе с объектом, будут отражены в первоначальном объекте.

      Мне даже не нужно возвращать его в методе.

      Как было сказано ранее, массивы – это объекты. Однако, у них нет полезных методов внутри объекта Array.

      Для этого в Java есть класс Arrays,

      который содержит набор статических вспомогательных методов для работы с числами, схожих с тем, как в классе Math есть набор статических вспомогательных методов для работы с числами.

      Вот несколько популярных методов из класса Arrays.

      Метод toString возвращает строковое представление массива.

      Метод equals определяет, одинаковы ли два массива.

      Метод fill присваивает новое значение всем элементам массива.

      Метод sort сортирует элементы.

      Метод binarySearch выполняет поиск элемента по значению и возвращает индекс элемента в случае успеха, или отрицательное целое в случае, если такого элемента нет.

      Для работы метода binarySearch необходимо, чтобы массив был уже отсортирован.

      Класс Arrays находится в пакете java. util, и если вы хотите его использовать, вы должны добавить строку import java. util.* в начало Java файла.

      Давайте рассмотрим пример использования пары методов из класса Arrays.

СКАЧАТЬ