Главная » Статьи для тега "объекта"

Finalize в Java

Добавлено Дата: 10 June, 2011 категория: Java

 

Вообще говоря, мы не в состоянии заметить, когда именно происходит фактическое удаление "осиротевших" объектов, — процесс, что называется, просто "идет". Но в составе любого класса может быть реализован метод finalize, который вызывается сборщиком мусора непосредственно перед удалением объекта класса. Метод предоставляет программисту шанс привести объект в "чистое" состояние, освободив все используемые им ресурсы, не относящиеся к памяти. Метод finalize объявлен в классе Object.

Читать »

java.net — сети

Добавлено Дата: 10 June, 2011 категория: Java

 

   Пакет Java, net содержит классы сетевых соединений (sockets), сетевых адресов (network addresses) и универсальных локаторов ресурсов (Universal Resource Locators — URLs), обеспечивающие функции поддержки сетевой инфраструктуры.

  Главным звеном пакета java.net служит класс Socket, представляющий сочинение одного объекта Socket с другим — возможно, созданным на другой ашине, — через которое может передаваться поток байтов. Объект Socket бычно конструируется с заданием имени хост-компьютера, объекта netAddress и номера порта в определенных сочетаниях. Допустимо также указывать локальные адрес InetAddress и номер порта, к которым должен быть привязан" объект Socket. Объект класса ServerSocket позволяет программе прослушивать" определенный порт, отслеживать входящие запросы на создание оединений и строить для каждого из них объект Socket. Следующий пример емонстрирует, каким образом может быть организован прием информации, ад-есуемой объекту сетевого соединения:

Читать »

Поля Java

Добавлено Дата: 10 June, 2011 категория: Java

Переменные, принадлежащие классу, называют полями (fields); примером поля может служить переменная name класса Body, рассмотренного выше. Объявление [юля состоит из наименования типа, за которым следуют идентификатор переменной необязательная конструкция инициализации, позволяющая присвоить переменной некоторое исходное значение. Каждый объект класса Body обладает собственными копиями трех полей: типа long для хранения уникального номера, позволяющего различить объект среди ему подобных, типа String, содержащего строку имени объекта, и типа Body, ссылающегося на другой объект того же типа, который представляет небесное светило, "центральное" по отношению к текущему. Объект (экземпляр) класса обладает "личными" копиями полей, Т.е. собственным – в общем случае, уникальным – состоянием. Поля объекта принято называть переменными экземпляра. Например, изменение содержимого поля orbits, принадлежащего одному из объектов Body, никоим образом не воздействует на одноименные поля других объектов того же типа.

Читать »

javax.naming — службы каталогов и имен

Добавлено Дата: 9 June, 2011 категория: Java

 

   Пакеты javax. naming и javax. naming.di rectory содержат определения типов, поддерживающих функции служб каталогов и имен (directory and naming services) в соответствии с технологией Java Naming and Directory Interface (JNDI) в рамках приложений, написанных на языке программирования Java. Пакет спроектирован так, чтобы обеспечить независимость от возможных конкретных реализаций служб каталогов или имен. Таким образом, множество сервисов — существующих, разрабатываемых или готовых к распространению       могут быть доступны посредством единого набора инструментов.

Читать »

Интерфейс Externalizable в Java

Добавлено Дата: 9 June, 2011 категория: Java

 

Интерфейс External izable является производным от Serial izable. Класс, реализующий интерфейс External izable, приобретает все полномочия по управлению состоянием объекта, подлежащего сериализации, но при этом несет и сугубую ответственность за корректную обработку данных, относящихся к базовым классам, обеспечение контроля версий и т.д. Подобная возможность необходима, например, в условиях, когда при реализации хранилища данных об объектах следует учесть некие особые ограничения, касающиеся формы представления объектов и не совместимые с существующими механизмами сериализации. В составе интерфейса External izable определены два метода:

Читать »

Поля final Java

Добавлено Дата: 6 June, 2011 категория: Java

Значение переменной, снабженной модификатором final, после инициализации уже не может быть изменено, так как любая попытка присваивания переменной нового содержимого приводит к ошибке времени компиляции. Мы уже говорили о полях final, исполняющих функции именованных констант, – такое их применение вполне оправданно, поскольку константы по определению неизменны. Модификатор final применяется для обозначения постоянства некоторого свойства класса или объекта на протяжении всего его жизненного цикла.

Читать »

Сериализация объектов в Java

Добавлено Дата: 3 June, 2011 категория: Java

 

   Одной из существенных возможностей многих реальных приложений является способность преобразовывать объекты в байтовые потоки, которые могут передаваться в пределах сети — скажем, с целью использования в рамках технологии удаленного  вызова методов (remote method invocation), — сохраняться на диске в виде файлов, а затем при необходимости восстанавливаться в форме "живых" объектов.

Читать »

Ссылка this Java

Добавлено Дата: 2 June, 2011 категория: Java

 

В некоторых случаях в теле метода текущего объекта удобно оперировать ссылкой на этот объект – например, если текущий объект должен сохранить себя в некоем списке объектов. Методы способны обращаться к объекту, которому они принадлежат, посредством косвенной ссылки, обозначаемой служебным словом this, поскольку таковая всегда указывает на текущий объект.

Читать »

Механизмы ожидания и оповещения Java

Добавлено Дата: 2 June, 2011 категория: Java

 

Существуют три формы методов ожидания и две – оповещения. Все они реализованы в составе класса Object и снабжены модификатором final, препятствующим их переопределению в производных классах.

public final void wait(long timeout) throws InterruptedException Текущий поток ожидает наступления одного из четырех событий: вызван метод notify объекта и потоку следует продолжить работу; вызван метод notifyALL объекта; истек промежуток времени, заданный параметром timeout; поток вызвал собственный метод interrupt. Значение timeout выражается в миллисекундах. Если оно равно нулю, метод будет выполняться неопределенное время до получения уведомления, посланного от notify или notifyALL. На время цикла ожидания блокировка объекта освобождается и автоматически устанавливается непосредственно перед завершением выполнения wait, независимо от того, как и почему ожидание прекращается. Если работа wait завершается в результате вызова метода interrupt, выбрасывается исключение типа InterruptedException.

Читать »

Observer/Observable

Добавлено Дата: 1 June, 2011 категория: Java

 

   Пара типов предоставляет средства отслеживания произвольным множеством объектов Observer всех изменений и событий, которые затрагивают произвольное число объектов Observable. Объект класса, производного от Observable, содержит методы, позволяющие поддерживать список объектов типа Observer, которым следует "знать" обо всех "происшествиях", касающихся объекта Observable. Все объекты такого списка должны относиться к классам, реализующим интерфейс Observer. Когда объект Observable подвергается изменению или встречается с событием, заслуживающим "внимания" со стороны объектов Observer, он вызывает собственный метод notifyObservers, который, в свою очередь, обращается к методу update каждого из "заинтересованных" объектов Observer.

Читать »

Подготовка классов к сериализации в Java

Добавлено Дата: 31 May, 2011 категория: Java

 

   Необходимым условием возможности осуществления сериализации объектов класса средствами потока ObjectOutputStream является реализация классом интерфейса-лшркера (marker interface, см. раздел 4.5) Serializable. Поддержка классом интерфейса Serializable свидетельствует о том, что объекты класса готовы к сериализации.

Читать »

Порядок выполнения конструкторов

Добавлено Дата: 31 May, 2011 категория: Java

В процессе создания объекта расширенного класса виртуальная машина выделяет память для хранения всех его полей, включая и те, которые унаследованы от базового класса, и последние получают исходные значения по умолчанию, отвечающие их типам (О (нуль) – для всех числовых типов, false – для boolean, ‘\uOOOO’ – для char и null – для ссылок на объекты). Далее процесс можно разделить на три следующие стадии:

Читать »

Класс Object Java

Добавлено Дата: 31 May, 2011 категория: Java

 

Класс Object находится на вершине иерархии классов Java. Object явно или косвенно наследуется всеми классами, поэтому переменная типа Object способна указывать на объект любого типа, будь то экземпляр какого-либо класса или массив. Например, разработанный нами класс Attr предназначен для хранения атрибутов любого типа, поэтому его поле value объявлено как ссылка на объект типа Object. полю value (и любой переменной типа Object) нельзя непосредственно присваивать значения простых типов (таких как int, boolеаn и т.п.), но это ограничение легко обойти, "запаковав" значения в объекты соответствующих классов-оболочек (Integer, Boolean и др.), которые подробно описаны в главе 11.

Читать »

Строки и массивы значений char Java

Добавлено Дата: 31 May, 2011 категория: Java

Содержимое объекта String может быть отображено с помощью массива элементов типа char и наоборот. Достаточно часто возникает задача построения массива значений char, а на его основе – объекта типа String. В тех ситуациях, когда применение объектов класса StringBuffer (обратитесь к разделу 9.8 на странице 237), допускающих изменение строковых данных, нецелесообразно или неудобно, можно обратиться к нескольким методам и конструкторам класса Stri ng, помогающим преобразовать объект типа String в массив значений char либо, наоборот, массив char – в объект String.

Читать »

Вызов метода Java посредством задания ссылки на объект класса

Добавлено Дата: 29 May, 2011 категория: Java

Методы вызываются посредством задания ссылки на объект класса (скажем, reference) и наименования метода со списком аргументов (method(arguments)). Ссылка на объект и наименование метода объекта разделяются оператором точки (.):

reference.method(arguments);

Читать »