JavaRush /Java Blog /Random-ID /Pertanyaan rumit tentang Java yang sering ditanyakan dala...

Pertanyaan rumit tentang Java yang sering ditanyakan dalam wawancara

Dipublikasikan di grup Random-ID
Jika Anda pernah mempersiapkan wawancara untuk posisi programmer Java atau mengikuti ujian apa pun (tidak harus pemrograman) untuk mendapatkan sertifikat, kemungkinan besar Anda telah memperhatikan bahwa pertanyaan yang mereka ajukan sangat spesifik. Banyak dari mereka membuat Anda berpikir tentang arsitektur bahasanya, beberapa dirancang untuk pengetahuan yang mendalam. Ada juga yang lebih mirip teka-teki atau bernuansa kekhawatiran yang sangat sulit dirasakan tanpa latihan. Pada artikel ini, pengembang Saraans Singh memberikan beberapa pertanyaan Java seperti itu. Tentu saja dengan jawaban. Pertanyaan rumit Java yang sering ditanyakan dalam wawancara - 11. Apa yang terjadi jika Anda meletakkan pernyataan return atau System.exit() di blok coba/tangkap? Ini adalah pertanyaan "mengejar ketinggalan" yang sangat populer di Java. Triknya adalah banyak programmer percaya bahwa blok tersebut finallyakan dieksekusi bagaimanapun juga. Pertanyaan ini menantang konsep ini dengan menempatkan pernyataan returndalam sebuah blok try/catchatau memanggil dari blok try/catchpernyataan System.exit (). Jawaban atas pertanyaan rumit ini: blok finallyakan dieksekusi ketika sebuah pernyataan ditempatkan returndi blok try/catch, dan tidak akan dieksekusi ketika dipanggil dari blok try/catchpernyataan System.exit (). 2. Apakah Java mendukung pewarisan berganda? Ini adalah pertanyaan yang sangat rumit. Pewawancara sering berkata: jika C++ dapat mendukung pewarisan berganda langsung, mengapa Java tidak? Jawabannya sedikit lebih rumit daripada yang terlihat, karena Java mendukung pewarisan tipe ganda, karena antarmuka di dalamnya dapat memperluas antarmuka lainnya. Namun bahasa Java tidak mendukung implementasi pewarisan berganda. 3. Jika suatu metode memunculkan pengecualian NullPointerExceptiondi kelas induk, dapatkah metode tersebut ditimpa oleh metode yang memunculkannya RuntimeException? Pertanyaan rumit lainnya terkait dengan konsep kelebihan beban dan penggantian. Jawaban: Anda dapat dengan aman melemparkan pengecualian kelas induk ke dalam metode yang diganti NullPointerException – RuntimeException, tetapi Anda tidak dapat melakukan hal yang sama dengan pengecualian tipe yang dicentang Exception. 4. Bagaimana cara menjamin bahwa thread dapat mengakses sumber daya tanpa mengalami kebuntuan? NN Jika Anda tidak pandai menulis kode multi-utas, pertanyaan ini akan sangat rumit bagi Anda. Ini bisa menjadi tantangan bahkan bagi programmer berpengalaman yang belum pernah menangani kebuntuan dan kondisi balapan. Triknya di sini adalah dalam urutannya: kebuntuan dapat dicegah dengan membebaskan sumber daya dalam urutan terbalik saat sumber daya tersebut diperoleh. 5. Apa perbedaan class StringBufferdengan StringBuilderbahasa java? Sebuah pertanyaan klasik tentang bahasa Java, dianggap rumit oleh sebagian pengembang dan sangat sederhana oleh pengembang lainnya. Kelas StringBuilderdiperkenalkan di JDK 1.5 dan satu-satunya perbedaan di antara keduanya adalah metode kelas StringBuffer, misalnya, length()atau capacity(), append()disinkronkan, sedangkan metode kelas terkait StringBuildertidak. Karena perbedaan mendasar ini, penggabungan string StringBuildermenjadi lebih cepat dengan StringBuffer. Faktanya, StringBuffertidak disarankan untuk menggunakannya, karena dalam 99% kasus penggunaan, penggabungan string dilakukan pada thread yang sama. 6. Apa yang dikembalikan oleh ekspresi 1.0/0.0? Apakah ini akan menimbulkan pengecualian atau menyebabkan kesalahan kompilasi? Pertanyaan rumit lainnya tentang kelas Double. Meskipun pengembang Java mengetahui tipe data sederhana double dan kelas Double, ketika melakukan operasi floating-point, mereka tidak cukup memperhatikan Double.INFINITY, NaN, -0.0dan aturan yang mengatur perhitungan aritmatika yang terkait dengannya. Jawaban atas pertanyaan ini sederhana: tidak ada pengecualian ArithmeticExceptionyang akan dilempar, nilainya akan dikembalikan Double.INFINITY. 7. Apa yang terjadi jika Anda mencoba memasukkan HashMapobjek kunci ke dalam objek kunci yang sudah ada di dalamnya? Pertanyaan rumit ini adalah bagian dari pertanyaan umum lainnya: bagaimana cara kerjanya HashMapdi Java? HashMapadalah topik populer untuk pertanyaan yang membingungkan dan rumit tentang bahasa Java. Jawabannya adalah jika Anda mencoba memasukkan kembali kunci ke dalam HashMap, kunci yang lama akan diganti karena kelas HashMaptidak mengizinkan kunci duplikat. Dan kunci yang sama berarti kode hash yang sama, sehingga akan berakhir di tempat yang sama di segmen hash. Berdasarkan materi dari Quora
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION