Size: a a a

2017 July 11

LP

Luger Parabellum in Java Developers
Isabek
Например FileOutputStream оверайдит finalize.
protected void finalize() throws IOException {
       if (fd != null) {
           if (fd == FileDescriptor.out || fd == FileDescriptor.err) {
               flush();
           } else {
               close();
           }
       }
   }
в стдлиб такое иногда встречается.
еще пример :
нужно открыть большой файл, но не освобождать ресурсы сразу же (чтение долгое, выгоднее не закрывать ) . Файл открываете в объекте, на который есть WeakReference? но при этом при нехватке памяти объект все же будет вычищен , чтобы гарантировать корректность - придется и финалайз определить
источник

V

Vlad in Java Developers
Ну точнее юзать, в случае если в мануале есть требования по его вызову. А вот свои классы реализовывать запихивая в него бизнес логику, совсем не стоит
источник

LP

Luger Parabellum in Java Developers
Vlad
Ну скорее это все просто обертки для того чтобы закрыть проблемы с мемори ликам и прочем добром которое портит производительность. Так как на сколько я помню метод не гарантированный. И лучше не юзать..
ну вот пример - какой-нибудь программист не вызвал close()
источник

V

Vlad in Java Developers
Вот вот )) именно для них в некоторых стандартных реализациях и юзается метод финалайз. Что за нерадивых почистить мусор
источник

MK

M K in Java Developers
Я подозреваю что не закрытый statement закроется после закрытия конекшена именно файналайзлм?
источник

V

Vlad in Java Developers
Кстати на тему вопрос по object что делает метод hasCode() на память кто помнит и знает?
источник

LP

Luger Parabellum in Java Developers
M K
Я подозреваю что не закрытый statement закроется после закрытия конекшена именно файналайзлм?
да, подстраховка на случай чьей-то криворукости
источник

MK

M K in Java Developers
Vlad
Кстати на тему вопрос по object что делает метод hasCode() на память кто помнит и знает?
По дефолту?
источник

V

Vlad in Java Developers
Ага
источник

V

Vlad in Java Developers
Luger Parabellum
да, подстраховка на случай чьей-то криворукости
А вообще лучше трай с ресурсами все красиво и удобно ))
источник

MK

M K in Java Developers
Вроде бы по дефолту адрес переводит в инт
источник

LP

Luger Parabellum in Java Developers
Vlad
Кстати на тему вопрос по object что делает метод hasCode() на память кто помнит и знает?
адрес в памяти вроде возвращает
источник

MK

M K in Java Developers
Адрес не может вернуть в чистом виде в 64 битке :)
источник

V

Vlad in Java Developers
Кстати на тему ликов и закрытия в хибернейте 4.х.х был понт. Если срабатывает sqlexception то он бросал конекшин. В итоге база загибалась по количеству открытых сессий
источник

V

Vlad in Java Developers
По поводу хешкода
источник

V

Vlad in Java Developers
Там по дефолту генератор случайных чисел
источник

LP

Luger Parabellum in Java Developers
M K
Адрес не может вернуть в чистом виде в 64 битке :)
Да, в инт переводит.
а вот вопрос опять же в ту же степь:
а можно ли изменить стандартное поведение без переопределения hashcode в своем классе?)
источник

MK

M K in Java Developers
Этому помогали кривые руки программиста ещё, можно же настроить чтобы конекшены сами отваливались, возвращались в пул
источник

V

Vlad in Java Developers
Ну можно по тайм ауту но при активной генерации ошибок и использования сессий не успевали освобождаться.
источник

V

Vlad in Java Developers
В 5 зафиксили
источник