CodeGym/Blog Java/rawak/Soalan Java rumit yang sering ditanya semasa temu duga
John Squirrels
Tahap
San Francisco

Soalan Java rumit yang sering ditanya semasa temu duga

Diterbitkan dalam kumpulan
Jika anda pernah bersedia untuk temu duga untuk jawatan pengaturcara Java atau lulus mana-mana peperiksaan pensijilan (tidak semestinya tentang pengaturcaraan), maka anda mungkin telah perasan bahawa soalan yang ditanya di sana adalah sangat khusus. Ramai daripada mereka memaksa anda berfikir tentang reka bentuk bahasa. Sesetengahnya direka untuk menyelidik kedalaman pengetahuan anda. Terdapat soalan yang kelihatan lebih seperti teka-teki daripada yang lain, manakala yang lain berkaitan dengan nuansa bahasa yang sangat sukar untuk difahami tanpa latihan. Dalam artikel ini, pembangun Sarans Sing membentangkan beberapa soalan sedemikian tentang Java. Dengan jawapan, sudah tentu. Soalan Java rumit yang sering ditanya semasa temu duga - 11. Apakah yang berlaku jika saya meletakkan penyata pulangan atau System.exit() dalam blok cuba/tangkap? Ini adalah soalan Java yang sangat popular dan halus. Caranya ialah ramai pengaturcara percaya bahawa finallyblok itu sentiasa dilaksanakan. Dengan meletakkan returnpernyataan dalam try/catchblok atau memanggil System.exit()dari dalam try/catchblok, soalan itu menimbulkan keraguan terhadap kepercayaan ini. Jawapan kepada soalan rumit ini ialah: blok finallyakan dilaksanakan apabila returnpernyataan diletakkan dalam try/catchblok, tetapi tidak akan dilaksanakan apabila System.exit()dipanggil dari dalam try/catchblok. 2. Adakah Java menyokong pelbagai warisan? Ini adalah soalan yang sangat rumit. Penemu bual sering bertanya, "Jika C ++ menyokong warisan berbilang langsung, maka mengapa Java tidak boleh?" Jawapannya _adalah sedikit lebih rumit daripada yang mungkin kelihatan, kerana Java menyokong warisan pelbagai jenis. Lagipun, antara muka Java boleh memanjangkan antara muka lain. Yang berkata, Java tidak menyokong pelbagai warisan pelaksanaan. 3. Jika kaedah dalam kelas induk membuang NullPointerExceptions, bolehkah ia ditindih dengan kaedah yang membuang RuntimeExceptions? Ini adalah satu lagi soalan rumit yang berkaitan dengan terlebih muatan dan mengatasi. Jawapan: Kaedah yang diganti boleh membuang NullPointerExceptionkelas induk dengan selamat — RuntimeException, tetapi anda tidak boleh melakukan perkara yang sama dengan jenis pengecualian yang diperiksa seperti Exception. 4. Bagaimanakah anda menjamin bahawa Nbenang boleh mengakses Nsumber tanpa jalan buntu? Jika menulis kod berbilang benang bukan kemahiran anda, anda mungkin benar-benar tersandung pada soalan ini. Ia boleh menjadi sukar walaupun untuk pengaturcara berpengalaman yang tidak mengalami kebuntuan dan keadaan perlumbaan. Keseluruhan helah di sini adalah mengikut urutan: anda boleh mengelakkan kebuntuan dengan melepaskan sumber dalam susunan terbalik di mana ia diperoleh. 5. Apakah perbezaan antara StringBufferdan StringBuilderkelas di Jawa? Ini ialah soalan bahasa Java klasik yang sesetengah pembangun mendapati rumit dan lain-lain - sangat mudah. Kelas itu StringBuildermuncul dalam JDK 1.5. Satu-satunya perbezaan antara kelas ini ialah StringBufferkaedah, seperti length(), capacity(), dan append(), disegerakkan, manakala kaedah yang sepadan dalamStringBuilderbukan. Perbezaan asas ini bermakna penggabungan rentetan lebih cepat dengan StringBuilderdaripada dengan StringBuffer. Sebenarnya, penggunaan StringBuffertidak digalakkan, kerana penggabungan rentetan dilakukan pada benang yang sama 99% daripada masa. 6. Apakah hasil daripada penilaian ungkapan 1.0/0.0? Adakah ia akan menghasilkan pengecualian atau ralat kompilasi? Ini adalah satu lagi soalan rumit tentang kelas. Pembangun Java menyedari kewujudan jenis data berganda primitif dan kelas , tetapi apabila melaksanakan operasi titik terapung mereka tidak memberi perhatian yang cukup kepada , , , dan peraturan yang mengawal pengiraan aritmetik yang berkaitan. Jawapan kepada soalan ini adalah mudah: aSoalan Java rumit yang sering ditanya semasa temu duga - 2DoubleDoubleDouble.POSITIVE_INFINITYDouble.NEGATIVE_INFINITYNaN-0.0ArithmeticExceptiontidak akan dibuang; ungkapan menilai kepada Double.POSITIVE_INFINITY. 7. Apakah yang berlaku jika anda cuba memasukkan kunci ke dalam HashMapyang sudah mengandungi kunci itu? Soalan rumit ini adalah sebahagian daripada satu lagi soalan yang sering ditanya: bagaimana HashMapberfungsi di Jawa? HashMapialah sumber popular soalan mengelirukan dan rumit tentang Java. Inilah jawapannya: jika anda cuba memasukkan semula kunci dalam a HashMap, kunci lama akan diganti, kerana kelas HashMaptidak membenarkan kunci pendua. Dan kunci yang sama akan mendapat kod cincang yang sama, yang bermaksud ia akan berakhir di tempat yang sama dalam baldi cincang. Berdasarkan bahan Quora
Komen
  • Popular
  • Baru
  • Tua
Anda mesti log masuk untuk meninggalkan ulasan
Halaman ini tidak mempunyai sebarang ulasan lagi