CodeGym /Blog Jawa /Acak /Njelajah pitakonan lan jawaban saka wawancara proyek kang...
John Squirrels
tingkat
San Francisco

Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa. Bagean 1

Diterbitake ing grup
Hi! CodeGym wis nggabungake macem-macem klompok wong. Sawetara kita pengin dadi pangembang Jawa, lan kita nandur modal akeh wektu lan gaweyan kanggo pangembangan. Liyane wis dadi pangembang Jawa. Ing kasus apa wae, sampeyan kudu siyap diuji ing wawancara teknis. Iki ora gampang. Dheweke mbutuhake persiapan emosional lan teknis. Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa.  Bagean 1 - 1Aku bubar nemoni sawetara dhaptar pitakonan wawancara kanggo posisi pangembang Jawa. Pitakonan dipérang dadi sawetara tingkat: junior, mid-level, lan senior. Aja kuwatir: ora kabeh pitakonan gampang, nanging sing duwe tanda bintang arang ditakoni. Pitakonan kasebut apik, lan aku pengin nyoba mangsuli paling akeh. Cetha, iki ora kabeh pas ing siji artikel. Sawise kabeh, ana akeh pitakonan ing kana. Tegese bakal ana seri kabeh artikel kanthi jawaban kanggo pitakonan wawancara kasebut. Ayo kula nandheske sawetara poin langsung: jawaban bakal cendhak, amarga jawaban sing ditulis kanthi rinci bisa ditarik metu menyang artikel sing kapisah. Kajaba iku, ing wawancara, jawaban sing paling rinci lan akeh ora dikarepake, amarga pewawancara sampeyan mung duwe jam kanggo wawancara babagan topik penting (lan,

Q&A kanggo posisi pangembang junior

Pitakonan umum

1. Apa pola desain sing sampeyan ngerti? Marang kita babagan rong pola desain sing wis digunakake ing karya.

Ana macem-macem ageng pola. Kanggo sampeyan sing pengin ngerti kanthi lengkap babagan pola desain, aku nyaranake maca buku "Head First. Design Patterns". Iku bakal mbantu sampeyan gampang sinau rincian pola desain paling dhasar. Ing babagan pola desain sing bisa sampeyan sebutake ing wawancara kerja, ing ngisor iki dipikirake:
  • Builder - cithakan sing kerep digunakake, alternatif kanggo pendekatan klasik kanggo nggawe obyek;
  • Strategi - pola sing ateges polimorfisme. Yaiku, kita duwe antarmuka siji, nanging owah-owahan prilaku program gumantung saka implementasine antarmuka tartamtu sing diterusake menyang fungsi kasebut (pola strategi saiki digunakake ing endi wae ing aplikasi Java).
Yen iku ora cukup kanggo sampeyan, mbayar manungsa waé kanggo Spring (yen sampeyan wis menowo karo), amarga iku platform kabeh frameworks, kang, ing siji, permeated karo pola saka awal kanggo mburi. Ing ngisor iki sawetara conto sing dakkandhakake:
  • Pabrik - pola iki bisa ditemokake ing ApplicationContext (utawa ing BeanFactory);
  • Singleton - kabeh kacang buncis minangka standar;
  • Proxy - Sejatine, kabeh ing Spring nggunakake pola iki ing salah siji cara utawa liyane, contone, AOP;
  • Rantai tanggung jawab - pola sing ndhukung Keamanan Musim Semi;
  • Cithakan - digunakake ing Spring JDBC.

Inti Jawa

Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa.  Bagean 1 - 2

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

Jawa nduweni jinis data primitif ing ngisor iki:
  • byte - integer kiro-kiro saka -128 kanggo 127, njupuk munggah 1 bait;
  • short — integers kiro-kiro saka -32768 kanggo 32767, njupuk munggah 2 bita;
  • int — integer kiro-kiro saka -2147483648 kanggo 2147483647, njupuk munggah 4 bita;
  • dawa - integer saka 9223372036854775808 nganti 9223372036854775807, njupuk 8 bita;
  • float - angka floating titik kiro-kiro saka -3.4E + 38 kanggo 3.4E + 38, njupuk munggah 4 bait;
  • pindho - angka ngambang titik kiro-kiro saka -1.7E + 308 kanggo 1.7E + 308, njupuk munggah 8 bait;
  • char - karakter tunggal ing UTF-16, njupuk 2 bita;
  • Nilai boolean bener / salah, njupuk 1 bait.
Lan ana jinis data referensi sing nuduhake obyek ing tumpukan.

3. Kepiye obyek beda karo jinis data primitif?

Bentenane pisanan yaiku jumlah memori sing dikuwasani: primitif njupuk sethithik banget amarga mung ngemot nilai dhewe, nanging obyek bisa ngemot akeh nilai sing beda - primitif lan referensi kanggo obyek liyane. Bentenipun ingkang kaping kalih inggih punika: Basa Jawa minangka basa ingkang berorientasi objek, saengga sedaya karya Jawi menika interaksi antar objek. Primitif ora pas banget ing kene. Sejatine basa Jawa iku dudu 100% basa sing berorientasi obyek. Bentenipun katelu, kang nderek saka kaloro iku amarga Jawa fokus ing interaksi obyek, ana akeh mekanisme beda kanggo ngatur obyek. Contone, konstruktor, cara, pangecualian (sing bisa digunakake utamane karo obyek), lan liya-liyane.bungkus kanggo jinis primitif ( Integer , Character , Double , Boolean ...)

4. Apa prabédan antarane argumen passing dening referensi lan dening Nilai?

Kolom primitif nyimpen nilai: contone, yen kita nyetel int i = 9; , banjur lapangan i nyimpen nilai 9. Nalika kita duwe referensi kanggo obyek, tegese kita duwe lapangan karo referensi kanggo obyek. Ing tembung liyane, kita duwe lapangan sing nyimpen alamat obyek ing memori.

Cat cat = new Cat();
Iki tegese kolom kanthi referensi kanggo obyek uga nyimpen nilai . Nilai kasebut minangka alamat memori. Sing, kucing nyimpen alamat memori saka obyek Cat () anyar . Nalika kita ngirim argumen menyang metode, nilai kasebut disalin. Ing kasus primitif, nilai primitif disalin. Mulane, cara kasebut bisa digunakake karo salinan. Nalika salinan diganti, asli ora kena pengaruh. Ing kasus jinis referensi, nilai alamat memori disalin. Mulane, loro variabel referensi bakal nyimpen alamat sing ngarah menyang obyek sing padha. Lan yen kita nggunakake referensi anyar iki kanggo ngganti obyek, banjur kita bakal nemokake iku uga diganti kanggo referensi lawas. Sawise kabeh, loro-lorone nuduhake obyek sing padha.

5. Apa JVM, JDK, lan JRE?

JVM singkatan saka Java Virtual Machine , sing nganggo Java bytecode sing wis digawe dening compiler. JRE iku singkatan saka Java Runtime Environment . Sejatine, iku lingkungan kanggo mbukak aplikasi Java. Iku kalebu 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 kalebu alat lan utilitas kayata kompiler utawa debugger kanggo ngembangake aplikasi. JDK singkatan saka Java Development Kit , sing minangka extension saka JRE. Sing, iku lingkungan ora mung kanggo mbukak aplikasi Java, nanging uga kanggo ngembangaken. JDK ngemot kabeh sing ana ing JRE, ditambah karo macem-macem alat tambahan - kompiler lan debugger - sing dibutuhake kanggo nggawe aplikasi Java (kalebu dokumen Java). Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa.  Bagean 1 - 3

6. Apa nggunakake JVM?

Kaya sing kasebut ing ndhuwur, Java Virtual Machine minangka mesin virtual sing mbukak bytecode Java sing wis digawe dening compiler. Iki tegese JVM ora ngerti kode sumber Jawa. Dadi, pisanan, kita ngumpulake file .java . File sing dikompilasi duwe .classextension lan saiki ing wangun bytecode, kang JVM mangertos. JVM beda kanggo saben OS. Nalika JVM mbukak file bytecode, adapts kanggo OS sing lagi mlaku. Ing kasunyatan, amarga ana JVM beda, JDK (utawa JRE) uga beda kanggo OS beda (saben versi mbutuhake JVM dhewe). Ayo padha elinga carane pembangunan bisa digunakake ing basa program liyane. Sampeyan nulis 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 platform. Nanging pangolahan pindho kode Jawa (kompilasi kode sumber dadi bytecode, banjur ngolah bytecode dening JVM) ngidini sampeyan entuk manfaat saka solusi lintas platform. Kita nggawe kode sapisan lan ngumpulake menyang bytecode. Banjur kita bisa njupuk menyang OS apa wae, lan JVM asli bisa mbukak. Lan iki pancen legendaris Jawanulis sapisan, mbukak ngendi wae fitur. Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa.  Bagean 1 - 4

7. Apa sing diarani bytecode?

Nalika aku ngandika ndhuwur, compiler ngowahi kode Jawa menyang bytecode penengah (kita pindhah saka file karo extension .java kanggo file karo extension .class). Akeh cara, bytecode padha karo kode mesin, kajaba sing pesawat instruction ora kanggo prosesor nyata, nanging virtual. Yen ngandika, bisa kalebu bagean sing dirancang kanggo JIT compiler, kang ngoptimalake eksekusi printah kanggo prosesor nyata program mlaku ing. Kompilasi JIT, uga disebut kompilasi on-the-fly, minangka teknologi sing nambah kinerja program bytecode kanthi nglumpukake bytecode menyang kode mesin utawa format liyane nalika program lagi mlaku. Minangka sampeyan bisa uga wis guessed, JVM nggunakake JIT compiler nalika mbukak bytecode. Ayo ndeleng sawetara conto bytecode: Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa.  Bagean 1 - 5Ora bisa diwaca, ta? Kabar apik yaiku instruksi iki ora ditrapake kanggo kita. Iku kanggo JVM.

8. Apa ciri-cirine JavaBean?

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

  2. Kolom internal diakses liwat metode get and set instance, sing kudu duwe implementasi standar. Contone, yen kita duwe lapangan jeneng , banjur kita kudu getName lan setName , etc. Iki ngidini macem-macem alat (frameworks) kanthi otomatis njaluk lan nyetel isi kacang buncis tanpa kangelan.

  3. Kelas kudu ngilangi metode sing padha () , hashCode () , lan toString () .

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

Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa.  Bagean 1 - 6

9. Apa OutOfMemoryError?

OutOfMemoryError minangka kesalahan runtime kritis sing ana gandhengane karo Java Virtual Machine (JVM). Kesalahan iki dumadi nalika JVM ora bisa nyedhiakke obyek amarga ana ora cukup memori kanggo, 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 iki bisa disebabake bocor memori utawa ukuran tumpukan standar sing cilik banget kanggo aplikasi saiki.

  • OutOfMemoryError: GC Overhead watesan ngluwihi - amarga data aplikasi meh ora pas ing numpuk, kolektor uwuh mlaku kabeh wektu, nyebabake program Java kanggo mbukak alon banget. Akibaté, watesan overhead kolektor sampah wis ngluwihi lan aplikasi tubrukan karo kesalahan iki.

  • OutOfMemoryError: Ukuran array sing dijaluk ngluwihi watesan VM - iki nuduhake yen aplikasi nyoba ngalokasi memori kanggo array sing ngluwihi ukuran tumpukan. Maneh, iki bisa uga ateges yen memori ora cukup diparengake kanthi standar.

  • OutOfMemoryError: Metaspace — tumpukan kehabisan papan sing dialokasikan kanggo metadata (metadata minangka instruksi kanggo kelas lan metode).

  • OutOfMemoryError: njaluk bita ukuran kanthi alesan. Metu saka papan swap - sawetara kesalahan dumadi nalika nyoba kanggo nyedhiakke memori saka numpuk, lan minangka asil, numpuk kurang papan cekap.

10. Apa iku tilak tumpukan? Carane aku njaluk iku?

Tilak tumpukan minangka dhaptar kelas lan cara sing diarani nganti titik iki ing eksekusi aplikasi. Sampeyan bisa entuk jejak tumpukan ing titik tartamtu ing aplikasi kanthi nindakake iki:

StackTraceElement[] stackTraceElements =Thread.currentThread().getStackTrace();
Iki ndadekake kita macem-macem StackTraceElements sing disusun ing urutan Last In First Out (LIFO) . Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa.  Bagean 1 - 7Ing Jawa, nalika wong ngomong bab tilak tumpukan, padha biasane tegese tilak tumpukan katampil ing console nalika ana kesalahan (utawa pangecualian). Sampeyan bisa entuk jejak tumpukan saka pangecualian kaya iki:

StackTraceElement[] stackTraceElements;
try{
                ...
} catch (Exception e) {
   stackTraceElements = e.getStackTrace();
}
Lan yen kita pengin nampilake jejak tumpukan pangecualian ing konsol:

try{
                ...
} catch (Exception e) {
  e.printStackTrace();
}
Kajaba iku, yen ana kesalahan, pangecualian sing ora dicenthang , utawa pangecualian sing ora dicenthang , mula kanthi otomatis entuk jejak tumpukan pangecualian ing konsol nalika aplikasi nabrak. Punika conto cilik saka tilak tumpukan ing console: Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa.  Bagean 1 - 8Lan ing cathetan sing, kita bakal nganakke diskusi topik iki dina.Njelajah pitakonan lan jawaban saka wawancara proyek kanggo posisi pangembang Jawa.  Bagean 1 - 9
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION