JavaRush /Blog Java /Random-MS /Soalan rumit Java yang sering ditanya dalam temu bual

Soalan rumit Java yang sering ditanya dalam temu bual

Diterbitkan dalam kumpulan
Jika anda pernah bersedia untuk temu duga untuk jawatan pengaturcara Java atau mengambil sebarang peperiksaan (tidak semestinya dalam pengaturcaraan) untuk mendapatkan sijil, kemungkinan besar anda telah perasan bahawa soalan yang mereka ajukan adalah sangat spesifik. Banyak daripada mereka membuat anda berfikir tentang seni bina bahasa, sesetengahnya direka untuk pengetahuan yang mendalam. Ada juga yang lebih seperti teka-teki atau nuansa kebimbangan yang sangat sukar untuk dirasai tanpa latihan. Dalam artikel ini, pembangun Saraans Singh menyediakan beberapa soalan Java sedemikian. Dengan jawapan, sudah tentu. Soalan rumit Java yang sering ditanya dalam temu bual - 11. Apakah yang berlaku jika anda meletakkan pernyataan return atau System.exit() dalam blok cuba/tangkap? Ini adalah soalan "catch-up" yang sangat popular di Jawa. Caranya ialah ramai pengaturcara percaya bahawa blok itu finallyakan dilaksanakan dalam apa jua keadaan. Soalan ini mencabar konsep ini dengan meletakkan pernyataan returndalam blok try/catchatau memanggil dari blok try/catchpernyataan System.exit (). Jawapan kepada soalan rumit ini: blok finallyakan dilaksanakan apabila pernyataan diletakkan returndalam blok try/catch, dan tidak akan dilaksanakan apabila dipanggil dari blok try/catchpernyataan System.exit (). 2. Adakah Java menyokong pelbagai warisan? Ini adalah soalan yang sangat rumit. Penemu bual sering berkata: jika C++ boleh menyokong warisan berbilang langsung, mengapa Java tidak? Jawapannya sedikit lebih rumit daripada yang mungkin kelihatan, kerana Java menyokong warisan berbilang jenis, kerana antara muka di dalamnya boleh memanjangkan antara muka lain. Tetapi bahasa Java tidak menyokong pelbagai warisan pelaksanaan. 3. Dalam kes di mana kaedah membuang pengecualian NullPointerExceptiondalam kelas induk, bolehkah ia ditindih oleh kaedah yang membuang RuntimeException? Satu lagi soalan rumit yang berkaitan dengan konsep terlebih muatan dan mengatasi. Jawapan: Anda boleh membuang pengecualian kelas induk dengan selamat dalam kaedah yang digantikan NullPointerException – RuntimeException, tetapi anda tidak boleh melakukan perkara yang sama dengan pengecualian yang diperiksa jenis Exception. 4. Bagaimana untuk menjamin bahawa benang boleh mengakses sumber tanpa kebuntuan? NN Jika anda tidak begitu mahir menulis kod berbilang benang, soalan ini akan menjadi sangat rumit untuk anda. Ia boleh mencabar walaupun untuk pengaturcara berpengalaman yang tidak menangani kebuntuan dan keadaan perlumbaan. Caranya di sini adalah dalam susunan: kebuntuan boleh dicegah dengan membebaskan sumber dalam susunan terbalik di mana ia diperoleh. 5. Apakah perbezaan antara kelas StringBufferdan StringBuilderdalam bahasa Jawa? Soalan klasik tentang bahasa Java, dianggap rumit oleh sesetengah pembangun dan sangat mudah oleh orang lain. Kelas StringBuildertelah diperkenalkan dalam JDK 1.5 dan satu-satunya perbezaan di antara mereka ialah kaedah kelas StringBuffer, sebagai contoh, length()atau capacity(), append()disegerakkan, manakala kaedah kelas yang sepadan StringBuildertidak. Oleh kerana perbezaan asas ini, penggabungan rentetan StringBuilderlebih cepat dengan StringBuffer. Malah, StringBufferia tidak disyorkan untuk digunakan, kerana dalam 99% kes penggunaan, penggabungan rentetan dilakukan pada benang yang sama. 6. Apakah ungkapan 1.0/0.0 kembali? Adakah ia akan membuang pengecualian atau menyebabkan ralat kompilasi? Satu lagi soalan rumit tentang kelas Double. Walaupun pembangun Java mengetahui jenis data mudah double dan class Double, apabila menjalankan operasi titik terapung, mereka tidak memberi perhatian yang cukup kepada Double.INFINITY, NaN, -0.0dan peraturan yang mengawal pengiraan aritmetik yang berkaitan dengannya. Jawapan kepada soalan ini adalah mudah: tiada pengecualian ArithmeticExceptionakan dilemparkan, nilai akan dikembalikan Double.INFINITY. 7. Apakah yang berlaku jika anda cuba memasukkan HashMapobjek utama ke dalam objek utama yang telah wujud di dalamnya? Soalan rumit ini adalah sebahagian daripada satu lagi soalan yang sering ditanya: bagaimana ia berfungsi HashMapdi Jawa? HashMapialah topik popular untuk soalan mengelirukan dan rumit tentang bahasa Java. Jawapannya ialah jika anda cuba memasukkan semula kunci ke dalam HashMap, ia akan menggantikan yang lama kerana kelas HashMaptidak membenarkan kunci pendua. Dan kunci yang sama bermaksud kod cincang yang sama, jadi ia akan berakhir di tempat yang sama dalam segmen cincang. Berdasarkan bahan dari Quora
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION