JavaRush /Blog Jawa /Random-JV /Analisis pitakonan lan wangsulan saka wawancara kanggo pa...

Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa. Bagean 1

Diterbitake ing grup
Hello! Macem-macem wong padha kumpul ing JavaRush. Sawetara kita mung pengin dadi pangembang Jawa, nandur modal akeh wektu lan gaweyan ing pembangunan, dene liyane wis dadi pangembang Jawa. Ing siji utawa liyane, sampeyan kudu disiapake kanggo tes - wawancara teknis. Tes iki ora gampang, lan saliyane persiapan moral, persiapan teknis uga dibutuhake. Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 1Aku bubar nemokake dhaptar akeh Pitakonan Wawancara Pangembang Jawa babagan dou. Pitakonan iki dipérang dadi macem-macem tingkat - Junior, Tengah lan Senior. Aja kuwatir: ora kabeh pitakonan gampang, nanging sing duwe tanda bintang arang ditakoni. Pitakonan apik, nanging aku pengin nyoba mangsuli paling akeh. Cetha yen aku ora bakal mlebu ing ruang lingkup siji artikel; sawise kabeh, ana akeh pitakonan ing kana. Mulane, iki bakal dadi seri artikel sing mangsuli pitakon kasebut. Ayo kula langsung nandheske sawetara poin:
  1. Ana artikel sing apik banget kanthi pitakon lan jawaban sing paling apik. Sawetara pitakonan tumpang tindih karo dhaptar sing disedhiyakake ing ndhuwur (250+), mula pitakonan kasebut bakal dilewati supaya ora nggawe duplikat informasi maneh.

  2. Pitakonan kasebut diwenehake ing basa Ukrainia, nanging amarga mayoritas peserta JavaRush nganggo basa Rusia (lan luwih akeh aku uga), jawabane bakal ana ing basa Rusia.

  3. Jawaban bakal ringkes, amarga yen sampeyan nulis kanthi rinci, jawaban kanggo sawetara pitakonan mbutuhake artikel sing kapisah. Lan sajrone wawancara, jawaban sing rinci lan akeh ora dibutuhake, amarga pewawancara sampeyan mung duwe jam kanggo wawancara sampeyan babagan topik sing dibutuhake (lan, yen sampeyan ngelingi, cukup). Kanggo sing seneng nggali luwih jero, aku bakal ninggalake tautan.

Dadi, ayo miwiti.

Pitakonan lan Jawaban Junior Level

Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 2

Masalah umum

1. Apa pola desain sing sampeyan ngerti? Marang kita babagan loro cithakan sing digunakake ing karya.

Ana macem-macem template: sampeyan bisa miwiti kenalan karo artikel iki lan artikel iki. Nah, kanggo sampeyan sing pengin ngerti kanthi rinci, aku nyaranake maca buku "Kepala Pertama. Pola Desain " . Kanthi bantuan, sampeyan bisa sinau pola desain paling dhasar kanthi rinci lan kanthi cara sing gampang. Nalika nerangake pola desain sing bisa digunakake minangka conto ing wawancara, sawetara sing dipikirake yaiku:
  • Builder minangka cithakan sing kerep digunakake, alternatif kanggo nggawe obyek klasik;
  • Pola strategi , sing sacara inheren nggambarake polimorfisme. Yaiku, kita duwe antarmuka siji, nanging prilaku program bakal diganti gumantung apa implementasine tartamtu saka antarmuka iki ditransfer menyang fungsi (saiki strategi praktis digunakake ing endi wae ing aplikasi java).
Yen iki ora cukup kanggo sampeyan, mbayar manungsa waé kanggo Spring (yen sampeyan wis menowo karo), amarga iku platform kabèh frameworks, kang siji riddled karo pola munggah lan mudhun. Ing ngisor iki sawetara conto sing dakkandhakake:
  • Pabrik - ing ApplicationContext (utawa ing BeanFactory);
  • Singleton - kabeh kacang buncis minangka standar;
  • Proxy - ateges kabeh ing Spring nggunakake pola iki ing salah siji cara utawa liyane, contone, AOP;
  • Rantai tanggung jawab minangka pola adhedhasar konsep sing digunakake Spring Security;
  • Cithakan - digunakake ing Spring Jdbc.

Inti Jawa

Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 3

2. Jinis data apa wae kang ana ing basa Jawa?

Jawa nduweni jinis data primitif:
  • bait - integer ing kisaran -128 nganti 127, bobote 1 bait;
  • cendhak - integer ing sawetara -32768 kanggo 32767, bobot 2 bita;
  • int — integers -2147483648 kanggo 2147483647, bobot 4 bita;
  • dawa - integer ing sawetara 9223372036854775808 nganti 9223372036854775807, bobote 8 bita;
  • float - angka floating point ing sawetara -3.4E + 38 kanggo 3.4E + 38, bobote 4 bait;
  • pindho - angka ngambang titik ing sawetara -1.7E + 308 kanggo 1.7E + 308, abot 8 bita;
  • char - karakter tunggal ing UTF-16, bobote 2 bita;
  • Nilai boolean bener/salah , bobote 1 bait.
Lan referensi jinis data , kang nuding obyek ing numpuk.

3. Kepiye obyek beda karo jinis data primitif?

Bentenane pisanan: jumlah memori sing dikuwasani: primitif njupuk sethithik banget, amarga mung ngemot nilai dhewe, dene obyek bisa ngemot nilai sing beda banget: primitif lan referensi kanggo obyek liyane. Bentenipun ingkang kaping kalih: basa Jawa minangka basa ingkang berorientasi objek, saengga sedaya ingkang wonten ing salebetipun menika lumantar interaksi antawisipun objek, lan primitif boten pas sanget (saleresipun, punika sababipun basa Jawi sanes 100% basa ingkang berorientasi objek). Katelu, ngetutake saka kaloro: amarga Jawa fokus ing interaksi antarane obyek, obyek kasebut duwe macem-macem mekanisme kanggo ngatur. Contone, konstruktor, cara, pangecualian (kang operate utamané ing obyek), etc. Bener, supaya primitif bisa melu (karya) ing lingkungan berorientasi obyek iki, pambungkus diciptakake kanggo jinis primitif ( Integer , Character , Double , Boolean ...)

4. Punapa punika prabédan antarane paramèter pass dening referensi lan Nilai?

Kolom primitif nyimpen nilai: contone, yen kita nyetel int i = 9; kolom aku nyimpen nilai 9 . Nalika kita duwe referensi kanggo obyek, iku tegese kita duwe lapangan karo referensi kanggo obyek, utawa ing tembung liyane, karo Nilai saka alamat obyek ing memori.
Cat cat = new Cat();
Pranyata lapangan karo referensi kanggo obyek uga nyimpen nilai , nilai alamat memori. Yaiku, kucing nyimpen nilai alamat obyek Cat anyar () ing memori. Nalika kita ngliwati parameter menyang metode, nilai kasebut disalin. Ing kasus primitif, nilai primitif bakal disalin. Patut, cara kasebut bakal bisa digunakake karo salinan, ganti sing ora bakal mengaruhi asline. Ing kasus jinis referensi, nilai alamat memori bakal disalin, masing-masing, alamat bakal padha karo obyek sing dituju. Lan yen kita ngganti obyek nggunakake link anyar iki, iku bakal diganti kanggo lawas (sawise kabeh, loro-lorone nuding obyek sing padha).

5. Apa JVM, JDK, JRE?

JVM - Java Virtual Machine minangka mesin virtual sing mbukak bytecode Java sing wis digawe dening compiler. JRE - Java Runtime Environment - ateges lingkungan kanggo mbukak aplikasi Java, kang ngemot JVM , perpustakaan standar lan komponen liyane kanggo mbukak applets lan aplikasi ditulis ing basa program Jawa. Ing tembung liyane , JRE minangka paket kabeh sing dibutuhake kanggo mbukak program Java sing dikompilasi, nanging ora ngemot alat lan utilitas kayata kompiler utawa debugger kanggo pangembangan aplikasi. JDK - Java Development Kit - set lengkap JRE , yaiku lingkungan ora mung kanggo diluncurake, nanging uga kanggo ngembangake aplikasi Java. JDK ngemot kabeh sing ana ing JRE, ditambah karo macem-macem alat tambahan - kompiler lan debugger sing dibutuhake kanggo nggawe aplikasi ing Jawa (uga ngemot java docs).Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 4

6. Apa nggunakake JVM?

Kaya sing kasebut ing ndhuwur, Java Virtual Machine minangka mesin virtual sing mbukak bytecode Java sing wis digawe dening compiler. Tegese, JVM ora ngerti kode sumber Jawa. Mulane, pisanan, file .java dikompilasi , sing sawise kompilasi wis duwe extension .class lan diwenehi ing wangun kode byte padha JVM mangertos. Saben OS duwe JVM dhewe, dadi sawise nampa file bytecode, JVM nglakokake, adaptasi menyang OS sing kedadeyan kasebut. Bener, amarga JVM beda, versi JDK (utawa JRE) beda kanggo OS sing beda (saben mbutuhake JVM dhewe). Ayo padha elinga carane pembangunan bisa digunakake ing basa program liyane. Sampeyan ngembangake program, banjur kode kasebut dikompilasi dadi kode mesin kanggo OS tartamtu, banjur sampeyan bisa mbukak. Ing tembung liyane, sampeyan kudu nulis macem-macem versi program kanggo saben sistem. Dene ing Jawa, amarga pangolahan kode ganda (kompilasi lan pangolahan bait kode JVM), sampeyan bisa nikmati keuntungan saka lintas-platform. Kita tau nggawe kode kasebut, dikompilasi maneh dadi bytecode, ditransfer menyang OS apa wae, lan JVM lokal mbukak kode kasebut. Iki minangka properti legendaris Jawa - nulis sapisan, mbukak ing ngendi wae . Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 5Waca liyane babagan iki ing artikel " Kompilasi lan nglakokake aplikasi Java ing ngisor tutup ."

7. Apa sing diarani bytecode?

Nalika aku ngandika ndhuwur, compiler ngowahi kode Jawa menyang bytecode penengah (file karo extension .java menyang file karo extension .class). Bytecode ing akeh cara padha kode mesin, mung nggunakake pesawat saka instruksi ora saka prosesor nyata, nanging saka virtual. Kajaba iku, bisa uga kalebu bagean sing fokus ing panggunaan kompiler JIT, sing ngoptimalake eksekusi perintah kanggo prosesor nyata ing ngendi program kasebut mlaku. Kompilasi JIT, uga disebut kompilasi on-the-fly, yaiku teknologi sing nambah kinerja program nggunakake bytecode kanthi ngumpulake bytecode menyang mesin utawa format liyane nalika program lagi mlaku. Minangka sampeyan bisa uga wis guessed, JVM nggunakake JIT compiler nalika mbukak bytecode. Ayo goleki conto bytecode: Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 6Ora bisa diwaca, ta? Inggih, iki dudu instruksi kanggo kita, nanging kanggo JVM. Ing ngisor iki ana artikel sing bakal mbantu sampeyan luwih ngerti masalah iki.

8. Apa ciri-cirine Kacang Jawa?

JavaBeans minangka kelas Java kanthi aturan tartamtu. Ing ngisor iki sawetara aturan kanggo nulis JavaBean :
  1. Kelas kasebut kudu ngemot konstruktor akses umum sing kosong (ora ana parameter) kanthi modifier akses umum . Konstruktor iki ndadekake iku bisa kanggo nggawe obyek saka kelas iki tanpa masalah rasah (supaya ora ana fuss rasah karo paramèter).

  2. Kolom internal kelas diakses liwat metode get and set , sing kudu standar. Contone, yen kolom kasebut jeneng , banjur getName lan setName, lan sapiturute, iki ngidini macem-macem alat (kerangka) kanthi otomatis nemtokake lan nganyari isi kacang buncis tanpa komplikasi.

  3. Kelas kudu ngemot versi overridden saka padha () metode hashCode () lan toString () .

  4. Kelas kasebut kudu serializable, yaiku, kudu duwe antarmuka panandha - Serializable utawa ngleksanakake antarmuka Externalizable . Iki perlu supaya kahanan kacang bisa disimpen kanthi dipercaya, disimpen lan dibalekake.

Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 7Sampeyan bisa maca babagan jinis JavaBeans ing materi iki .

9. Apa OutOfMemoryError?

OutOfMemoryError minangka salah sawijining kesalahan runtime kritis sing ana gandhengane karo operasi Java Virtual Machine (JVM). Disebut nalika JVM ora bisa nyedhiakke obyek amarga ana ora cukup memori kasedhiya kanggo iku lan kolektor uwuh ora bisa nyedhiakke memori liyane. Sawetara jinis OutOfMemoryError :
  • OutOfMemoryError: Java heap space - obyek ora bisa dialokasikan ing Java heap amarga memori ora cukup. Kesalahan bisa disebabake bocor memori utawa amarga ukuran tumpukan standar ora cukup gedhe kanggo aplikasi saiki.

  • OutOfMemoryError: watesan GC Overhead ngluwihi - amarga kasunyatan sing jumlah data meh ora pas ing numpuk, kolektor uwuh mlaku kabeh wektu, lan program Java mlaku alon banget, lan minangka asil, watesan overhead saka kolektor sampah. wis ngluwihi lan aplikasi nabrak karo kesalahan iki.

  • OutOfMemoryError: Ukuran array sing dijaluk ngluwihi watesan VM - nuduhake yen aplikasi nyoba nyedhiakke memori kanggo array sing luwih gedhe tinimbang ukuran tumpukan, sing bisa uga amarga alokasi memori standar sing ora cukup.

  • OutOfMemoryError: Metaspace —heap wis entek spasi sing dialokasikan kanggo metadata (metadata minangka instruksi kanggo kelas lan metode).

  • OutOfMemoryError: njaluk bita ukuran kanthi alesan. Metu saka papan swap - ana sawetara kegagalan nalika nyoba ngalokasi memori saka tumpukan lan, minangka asil, ana kekurangan memori ing tumpukan kasebut.

10. Apa iku tilak tumpukan? Carane njaluk?

A Trace Stack minangka dhaptar kelas lan cara sing wis diarani nganti titik iki ing aplikasi kasebut. Sampeyan bisa nelpon tilak tumpukan ing titik tartamtu ing aplikasi kaya iki:
StackTraceElement[] stackTraceElements =Thread.currentThread().getStackTrace();
Kanthi cara iki, kita bakal entuk susunan unsur tilak tumpukan sing disusun miturut urutan LIFO - Last In First Out . Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 8Ing Jawa, minangka aturan, nalika kita pirembagan bab tilak tumpukan, kita ateges tilak tumpukan sing ditampilake ing console nalika ana kesalahan (utawa pangecualian). Sampeyan bisa entuk jejak tumpukan pangecualian kaya iki:
StackTraceElement[] stackTraceElements;
try{
                ...
} catch (Exception e) {
   stackTraceElements = e.getStackTrace();
}
Ya, yen kita ngomong babagan ngasilake jejak tumpukan pengecualian ing konsol:
try{
                ...
} catch (Exception e) {
  e.printStackTrace();
}
Uga, yen kita duwe kesalahan, pangecualian sing ora dicenthang utawa pangecualian sing dicenthang , sing ora bakal diproses, nanging mung bakal diterusake, banjur nalika aplikasi tubrukan kita bakal kanthi otomatis nampa tilak tumpukan pangecualian ing console. Conto cilik saka istiméwa tumpukan tilak ing console: Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 9Sampeyan bisa maca liyane babagan Stack Trace kene . Kita bakal fokus ing masalah iki dina iki ...Analisis pitakonan lan jawaban wawancara.  Bagean 1 - 10
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION