Re: Конструктор в Java
От: StanislavK Великобритания  
Дата: 10.10.13 22:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>"Конструктор гарантирует инициализацию

Это не всегда верно... В общем, как и в С++. Есть шанс, что другой поток получит ссылку на недосторенный объкет.
См. singleton + double-check locking.

А>Конечно, можно создать особый метод, назвать его initialize() и включить во все ваши классы.... "

А>[/q]
А>А в чем разница с C++ ? И тут и там можно кинуть эксепшен в конструкторе и чтобы хендлить такие вещи нужно оборачивать создание объекта в try-catch блок. Или разница в том, что в случае cpp деструктор вызван не будет (т.к. обьект не создан), а в java будет все таки вызван когда GC решить убить обьект класса?
В java нет декструкторов. Есть finalize которым не надо пользваться. Будет он вызван или нет, завист от того, был ли вызван конструктор самого базового класса, а так как избежать его вызова практически не возможно (попробуйте заставить конструктор Object кинуть исключение), то вероятность его вызова, если он (finalize) реализован, почти 100%.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.