
- Aku bakal ngliwati pitakonan sing tumpang tindih karo seri artikel iki supaya ora nggawe duplikat informasi sing ora perlu. Aku nyaranake maca artikel iki amarga padha nutupi pitakonan wawancara Java Core sing paling umum (populer).
- Aku bisa njlèntrèhaké jawaban kanthi luwih rinci, nanging ora, amarga saben jawaban bisa nyeret kanggo kabeh artikel. Lan ora ana sing bakal njaluk sampeyan tingkat rinci ing wawancara kerja apa wae.
11. Sebutake kabeh metode kelas Obyek
Kelas Object duwe 11 metode:-
Class<?> getClass() — njaluk kelas saka obyek saiki;
-
int hashCode () - njaluk kode hash saka obyek saiki;
-
boolean equals(Object obj) - mbandhingake obyek saiki karo obyek liyane;
-
Klone obyek () - nggawe lan bali salinan obyek saiki;
-
String toString () - entuk perwakilan string saka obyek;
-
void notify () - tangi siji thread nunggu ing monitor obyek iki (pilihan thread punika acak);
-
void notifyAll () - tangi kabeh thread nunggu ing monitor obyek iki;
-
void wait () - nggawe thread saiki ngenteni ing monitor saiki (freeze thread saiki) nganti notifikasi utawa notifyAll telpon wakes munggah thread (mung dianggo ing pemblokiran diselarasake);
-
void wait(long timeout) - nggawe thread saiki ngenteni ing monitor saiki (ing blok sinkronisasi saiki), nanging karo wektu entek kanggo metu saka negara nunggu (utawa maneh, nganti notifikasi utawa notifyAll telpon wakes munggah thread);
-
void wait(long timeout, int nanos) - cara iki kaya cara sadurunge, nanging kanthi wektu entek sing luwih tepat;
-
void finalize () - cara iki disebut (pungkasan) sadurunge obyek dibusak dening uwuh. Iki digunakake kanggo ngresiki sumber daya sing dipikolehi.
12. Apa bedane nyoba-kanggo-sumber daya lan nyoba-nyekel-akhire nalika nggarap sumber daya?
Biasane, nalika nggunakake try-catch-finally , blok pungkasan digunakake kanggo nutup sumber daya. Java 7 ngenalake statement try-with-resources anyar . Iku analog kanggo nyoba-nyekel-pungkasane kanggo mbebasake sumber daya, nanging luwih kompak lan bisa diwaca. Ayo kelingan kaya apa coba-nyekel-akhire :String text = "some text......";
BufferedWriter bufferedWriter = null;
try {
bufferedWriter = new BufferedWriter(new FileWriter("someFileName"));
bufferedWriter.write(text);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Saiki ayo nulis maneh kode iki, nanging nggunakake try-with-resources :
String text = "some text......";
try(BufferedWriter bufferedWriter =new BufferedWriter(new FileWriter("someFileName"))) {
bufferedWriter.write(text);
} catch (IOException e) {
e.printStackTrace();
}
Saiki sing luwih prasaja, apa ora? Saliyane kode sing luwih prasaja, ana sawetara poin liyane sing kudu dicathet:
-
Ing try-with-resources , sumber daya sing diumumake ing kurung (sumber daya sing bakal ditutup) kudu ngleksanakake antarmuka AutoCloseable lan cara cedhak () tunggal .
Cara cedhak dieksekusi ing blok pungkasan sing implisit , yen ora, kepiye program bakal nemtokake cara nutup sumber daya?
Nanging sampeyan bisa uga arang nulis implementasine sumber daya dhewe lan cara nutup.
-
Blok dieksekusi kanthi urutan iki:
- Blok nyoba .
- Sing implisit pungkasane diblokir.
- Blok nyekel , sing nyekel pangecualian sing kedadeyan ing langkah sadurunge.
- Eksplisit pungkasane diblokir.
Minangka aturan, pangecualian sing dibuwang ing ngisor dhaptar ngganggu sing dibuwang luwih dhuwur.
13. Apa operasi bitwise?
Operasi bitwise yaiku operasi ing urutan bit. Iki kalebu operasi logis lan owah-owahan bitwise. Operator logika:-
bitwise AND - Mbandhingake nilai bit. Sembarang bit disetel menyang 0 (palsu) nyetel bit sing cocog ing asil dadi 0. Yaiku, yen bit 1 (bener) ing loro nilai sing dibandhingake, mula bit sing diasilake uga bakal dadi 1.
Ditandani minangka AND utawa &
Tuladha: 10111101 & 01100111 = 00100101
-
bitwise UTAWA - Operasi iki ngelawan saka sing sadurunge. Sembarang bit disetel menyang 1 nyetel bit sing cocog ing asil kanggo 1. Mulane, yen bit 0 ing loro nilai dibandhingake, banjur bit asil uga bakal 0.
Ditandani minangka UTAWA utawa |
Tuladha: 10100101 | 01100011 = 11100111
-
bitwise NOT - Operator iki ditrapake kanggo nilai siji. Iku flips (inverts) bit. Sing, bit sing 1 dadi 0; lan sing 0 dadi 1.
Ditandani minangka NOT utawa ~
Tuladha: ~10100101 = 01011010
-
bitwise eksklusif UTAWA - Mbandhingake nilai bit. Yen loro bit 1, banjur bit asil 0. Yen loro bit 0, banjur bit asil 0. Ing tembung liyane, supaya bit asil dadi 1, mung siji bit kudu 1, lan bit liyane kudu 0.
Ditandani minangka XOR utawa ^
Tuladha: 10100101 ^ 01100011 = 11000110
- 01100011 >> 4 = 00000110
- 01100011 << 3 = 00011000


14. Benda baku apa wae kang ana ing basa Jawa?
Objek ora bisa diganti yen ora ngidini nilai asline diganti. Bisa uga ana cara sing ngasilake obyek anyar saka jinis sing padha kanthi nilai sing beda. Sawetara obyek sing ora bisa diganti standar kalebu:- temtu, jinis immutable paling misuwur Jawa iku String;
- conto kelas pambungkus sing mbungkus jinis standar: Boolean, Karakter, Byte, Short, Integer, Long, Double, Float;
- obyek BigInteger lan BigDecimal, kang biasane digunakake kanggo nomer utamané BIG;
- obyek StackTraceElement sing nggawe tilak tumpukan (contone, tilak tumpukan saka pangecualian);
- obyek saka kelas File - bisa ngowahi file, nanging ing wektu sing padha obyek kasebut tetep ora owah;
- UUID, sing asring digunakake kanggo ngenali unsur kanthi unik;
- kabeh obyek saka kelas ing paket java.time;
- Objek lokal, sing digunakake kanggo ngenali wilayah geografis, politik, utawa budaya.
15. Apa kaluwihan saka obyek immutable saka obyek biasa?
-
Obyek sing ora bisa diganti aman digunakake ing lingkungan multithreaded . Padha nggawe supaya sampeyan ora kudu padha sumelang ing bab mundhut data amarga kahanan lomba. Iki beda karo nalika sampeyan nggarap obyek biasa. Ing kasus kasebut, sampeyan kudu mikir lan nggawe mekanisme sing apik nalika nggunakake obyek ing lingkungan sing padha.
-
Obyek sing ora bisa diganti apik minangka kunci ing peta. Yen sampeyan nggunakake obyek sing bisa diowahi minangka tombol HashMap banjur owah-owahan negara obyek, banjur struktur data bisa bingung: obyek isih ana, nanging yen sampeyan nggunakake containsKey (), sampeyan ora bisa nemokake.
-
Obyek sing ora bisa diganti apik banget kanggo nyimpen data sing ora bisa diganti (konstan) sing ora bisa diganti nalika program lagi mlaku.
-
Kauntungan liyane yaiku atomicity kegagalan. Yen obyek immutable mbuwang pangecualian, ora bakal ditinggalake ing kahanan sing ora dikarepake (rusak).
-
Kelas-kelas iki gampang dites.
-
Sampeyan ora mbutuhake mekanisme tambahan kayata konstruktor salinan utawa implementasi kloning obyek.
Pitakonan babagan OOP
16. Apa kaluwihan OOP ing umum lan dibandhingake karo program prosedural?
Oke, keuntungan OOP:-
Aplikasi Komplek luwih gampang kanggo nulis nggunakake OOP saka program prosedural wiwit kabeh wis bejat mudhun menyang modul cilik - obyek sing sesambungan karo saben liyane - lan minangka asil, program wis suda kanggo sesambetan antarane obyek.
-
Aplikasi sing ditulis nganggo OOP luwih gampang diowahi (nalika prinsip desain diamati kanthi bener).
-
Amarga data lan operasi data dadi siji entitas, ora diolesi ing kabeh aplikasi (sing asring ana ing program prosedural).
-
Prinsip enkapsulasi nglindhungi data sing paling kritis saka pangguna.
-
Kode sing padha bisa digunakake maneh karo data sing beda amarga kelas ngidini sampeyan nggawe akeh obyek, saben duwe nilai dhewe.
-
Warisan lan polimorfisme uga ngidini sampeyan nggunakake maneh lan ngluwihi kode sing wis ana (tinimbang duplikat fungsi sing padha).
-
Nggedhekake aplikasi luwih gampang tinimbang karo pendekatan prosedural.
-
Pendekatan OOP ndadekake bisa ngilangi rincian implementasine.
17. Marang kita apa cacat OOP wis
Sayange, padha uga ana:-
OOP mbutuhake akeh kawruh teoretis sing kudu dikuasai sadurunge bisa nulis apa wae.
-
Gagasan OOP ora gampang dingerteni lan ditrapake ing praktik (sampeyan kudu dadi filsuf cilik ing ati).
-
OOP nyuda kinerja program rada amarga tambah kerumitan sistem.
-
Pendekatan OOP mbutuhake memori luwih amarga kabeh kasusun saka kelas, antarmuka, cara, sing njupuk memori luwih akeh tinimbang variabel biasa.
-
Wektu sing dibutuhake kanggo analisis awal luwih gedhe tinimbang pendekatan prosedural.
18. Apa polimorfisme statis versus polimorfisme dinamis?
Polimorfisme ngidini obyek saka kelas utawa antarmuka sing padha tumindak kanthi beda. Ana rong jinis polimorfisme, sing uga dikenal minangka ikatan awal lan pungkasan. Polimorfisme statis, utawa ikatan awal:- dumadi ing wektu kompilasi (awal siklus urip program);
- mutusake cara sing bakal ditindakake ing wektu kompilasi;
- overloading cara minangka conto polimorfisme statis;
- naleni awal kalebu pribadi, statis, lan cara final;
- warisan ora melu naleni awal;
- polymorphism statis ora ndherek obyek tartamtu, nanging informasi bab jinis kelas sing katon ing sisih kiwa jeneng variabel.
- dumadi nalika runtime (nalika program lagi mlaku);
- polimorfisme dinamis mutusake cara implementasine tartamtu sing bakal ditindakake nalika runtime;
- metode overriding minangka conto polimorfisme dinamis;
- telat naleni tegese nemtokake obyek tartamtu, referensi saka jinis, utawa superclass sawijining;
- warisan digandhengake karo polimorfisme dinamis.
GO TO FULL VERSION