-
Daftar metode kelas
Object
equals()
hashCode()
toString()
getClass()
notify()
notifyAll()
wait()
wait(long timeOut)
wait(long timeOut, int nanos)
-
equals
Kenapa & metode dibutuhakehashCode
?Digunakake kanggo mbandhingake obyek.
Tujuan metode kasebut
equals
yaiku kanggo nemtokake manawa obyek kasebut identik kanthi mbandhingake isi internal obyek kasebut. Ikiequals
kerjane alon-alon, pisanan kode hash obyek dibandhingake, lan yen kode hash padha, mriksa bakal ditindakake.equals
-
Apa sing kedadeyan yen sampeyan ngganti sing padha nanging ora ngilangi
hashCode
?Kaping pisanan
hashCode
, nomer acak.equals
Koleksi ing Jawa tansah goleki/bandhingake nggunakake metode sadurunge mbandhingake obyek nggunakakehashCode()
. Lan yen obyek sing padha beda-bedahashCode
, mula obyek kasebut bakal dianggep beda - mung ora bisa mbandhingake nggunakakeequals
. -
Kok cara- carane
wait
,,notify
?notifyAll
Kadhangkala ing program bisa uga ana kahanan ing ngendi thread wis mlebu blok kode
synchronized
, diblokir monitor lan ora bisa mlaku maneh, amarga sawetara data isih ilang: contone, file sing kudu diproses durung dimuat utawa kaya. Sawijining cara diciptakake kanggo ngatasi masalah ikiwait()
. Nelpon cara iki nyebabake thread ngeculake monitor lan "ngaso".Kanggo unpause, cara digunakake
notify
.notifyAll
Caranotify
"unfreezes" siji thread acak, caranotifyAll
- kabeh "beku" Utas monitor tartamtu. -
Kepiye cara kloning obyek kanthi bener?
Rong jinis kloning.
Kanggo kloning obyek standar:
- Tambah antarmuka
Cloneable
menyang kelas sampeyan - Override cara
clone
lan nelpon implementasine dhasar ing:
class Point implements Cloneable { int x; int y; public Object clone() { return super.clone(); } }
Utawa sampeyan bisa nulis implementasine metode kasebut
clone
dhewe:class Point { int x; int y; public Object clone() { Point point = new Point(); point.x = this.x; point.y = this.y; return point; } }
- Tambah antarmuka
-
Napa cara kasebut dibutuhake
finalize()
lan kepiye cara kerjane?Yen sampeyan ngelingi, iki
finalize()
minangka cara khusus sing diarani obyek sadurunge pengumpul sampah ngrusak.Tujuan utama metode iki yaiku ngeculake sumber daya eksternal non-Jawa: nutup file, stream I/O, lsp.
finalize()
dianggo ora stabil.Cara iki ora cocog karo sing dikarepake. Mesin Jawa bisa nundha karusakan saka obyek, uga nelpon saka cara,
finalize
kanggo anggere iku seneng. Kajaba iku, ora njamin yen metode iki bakal diarani kabeh. Ing akeh kahanan, kanggo "optimasi" ora diarani. -
Apa bedane
final
,,finally
?finalize
final
- modifier- Kolom ora bisa diganti, cara diganti
- Kelas ora bisa diwarisake
- Modifier iki mung ditrapake kanggo kelas, metode lan variabel (uga variabel lokal)
- Argumen metode ditandhani minangka
final
mung diwaca; nyoba ngganti bakal nyebabake kesalahan kompilasi. - Переменные
final
не инициализируются по умолчанию, им необходимо явно присвоить meaning при объявлении or в конструкторе, иначе – ошибка компиляции - Если final переменная содержит ссылку на an object, an object может быть изменен, но переменная всегда будет ссылаться на тот же самый an object
- Также это справедливо и для массивов, потому что массивы являются an objectми, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив
- Если класс объявлен
final
иabstract
(взаимоисключающие понятия), произойдет ошибка компиляции - Так How
final
класс не может наследоваться, его методы никогда не могут быть переопределены
finally
— блок в связкеtry-catch-finally
, code в котором выполнится независимо от того вылетело ли исключение в блокеtry
or нет. Используется для освобождения ресурсов.finalize
— метод в классеObject
см 6. -
What такое
try-with-resources
?Это специальная конструкция
try
, называемаяtry-with-resources
, в которой Обрати внимание – послеtry
следуют круглые скобки, где объявляются переменные и создаются an objectы. Эти an objectы можно использовать внутри блокаtry
, обозначенного скобками{}
. Когда выполнение команд блокаtry
закончится, независимо от того – нормально оно закончилось or было исключение, для an object, созданного внутри круглых скобок()
, будет вызван методclose()
; -
Чем отличаются методы
wait(1000)
иsleep(1000)
?sleep()
приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLEwait()
меняет состояние потока на WAITINGможет быть вызвано только у an object владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку . в случае
wait(int)
с аргументом состояние будет TIMED_WAITING -
В чем отличие
i++
и++i
?++i
,i
сначала увеличивается на 1, затем участвует в выражении.i++
,i
сначала участвует в выражении, затем увеличивается на 1.
GO TO FULL VERSION