Java Core



Зачем нужен Try с ресурсами в Java (try-with-resources(java7))?

13.08.2017 Java, Java Core 1 comment , ,

try-with-resources-java

Начнем с предыстории. Для начала рассмотрим метод finalize() класса Object. Раз данный метод принадлежит классу Object, значит его наследуют все классы и соответственно объекты на базе этих классов. Метод finalize() — это специальный метод, который вызывается у объекта Java-машиной перед тем, как сборщик мусора уничтожит данный объект. Данный метод был придуман для освобождения внешних ресурсов, которые занимал данный объект. Под внешними ресурсами имеются ввиду файлы, потоки ввода-вывода и т. д.
Читать далее…



Зачем нужен метод clone() в классе Object. Где он используется, и как работает.

10.08.2017 Java, Java Core Нет комментариев ,

clone-java

Цель метода clone() – клонировать объект, т.е. создать его клон/копию/дубликат.

Когда вызывается метод clone(), то Java-машина создает и возвращает дубликат объекта, у которого вызвали данный метод. Клонирование объекта в классе Object реализовано очень примитивно – при клонировании создается всего один новый объект: просто создается еще один объект и его полям присваиваются значения полей объекта-образца. Если копируемый объект содержит ссылки на другие объекты, то ссылки будут скопированы, дубликаты тех объектов не создаются.
Читать далее…



Зачем нужны методы equals() и hashCode. Где используются, и как работают.

07.08.2017 Java, Java Core 1 comment ,

equals и hashcode

Прежде чем пытаться понять методы equals() и hashCode(), необходимо вспомнить несколько фактов: в Java при сравнении ссылочных переменных сравниваются не сами объекты, а ссылки на объекты, и что все объекты унаследованы от класса Object, который содержит реализацию методов equals() и hashCode() по умолчанию.
Читать далее…