Pertanyaan dan Jawaban Wawancara Java Tahun 2022
Diterbitkan: 2022-08-03Apakah Anda seorang pemrogram? Dan Anda telah memilih bahasa pemrograman Java sebagai niche pilihan Anda untuk membangun karir? Selamat! Anda telah memilih dengan benar. Menurut statistik, seorang programmer AS menghasilkan rata-rata $105.801 per tahun. Itu rata-rata $50,87 per jam, $2,035 per minggu, dan $8,817 per bulan. Bukankah itu mengesankan?
Tetapi mendapatkan kesempatan untuk mendapatkan pekerjaan impian Anda sebagai programmer Java berada di luar angan-angan. Dari 8 juta programmer Java secara global, hanya sekitar 56.585 yang dipekerjakan di AS, membuat perburuan pekerjaan sebagai programmer Java cukup kompetitif. Jika Anda harus mendapatkan pekerjaan impian itu, Anda harus dilengkapi dengan baik dalam aspek dasar dan kompleks dari bahasa pemrograman Java.
Sekarang Anda tahu betapa kompetitifnya mendapatkan pekerjaan sebagai programmer Java, dan persyaratan untuk memenuhi syarat untuk menjadi salah satu dari sedikit untuk mendapatkan pekerjaan sebagai programmer java. Ingat, Sukses adalah fungsi dari kesempatan bertemu dengan kesiapan. Seiring kemajuan kami, kami telah merancang panduan tanya jawab untuk membantu Anda menskalakan melalui fase wawancara dan mungkin mendapatkan pekerjaan impian Anda. Daftar ini disusun dengan bantuan artikel – mempersiapkan pertanyaan dan jawaban wawancara java di Apollotechnical. Mari kita lanjutkan.
Pertanyaan wawancara Java dasar untuk mahasiswa baru
Apa yang Anda pahami tentang Jawa?
Java adalah bahasa pemrograman yang serbaguna, berorientasi objek, dan lintas platform, digunakan pada 3 miliar perangkat secara global untuk berbagai tugas seperti aplikasi jejaring sosial, program audio dan video, game, pemrosesan data masif, perangkat tertanam, dan sebagainya.
Bandingkan antara Java dan Python
Dalam kesederhanaannya, Java adalah tujuan umum, bahasa pemrograman yang berfokus pada objek berdasarkan kelas tetapi dengan spesifikasi yang dibutuhkan lebih sedikit. Karena reputasinya yang cepat, andal, dan berorientasi pada hasil, ini adalah bahasa pemrograman yang digunakan untuk mengembangkan aplikasi di ponsel, konsol game, laptop, komputer ilmiah kelas atas, dll. Di sisi lain, Python adalah bahasa pemrograman yang diterjemahkan, berfokus pada objek, dan ditinggikan secara terstruktur secara dinamis. Python memfasilitasi fleksibilitas program dan penggunaan kembali kode dengan mengaktifkan modul dan paket.
Garis besar fitur Java utama
- Java berfokus pada objek
- Java adalah Platform-agnostik
- Memiliki Implementasi Multithreading yang Sangat Baik
- Menggunakan bahasa yang sederhana
- Dan apakah Arsitektur netral?
Apa yang Anda maksud dengan objek di Jawa?
Di Java, sebuah objek adalah sebuah komponen (juga dikenal sebagai "sebuah instance") dari pengelompokan Java lain yang disebut 'class'. Setiap objek memiliki status, perilaku/tindakan, dan identitas yang unik. Bidang (variabel) menyimpan status objek, sedangkan metodologi (operasi) menampilkan tindakan objek. Saat run-time, objek dibuat dari kerangka kerja yang diidentifikasi sebagai kelas.
Objek juga bisa menjadi elemen dasar Pemrograman Berbasis Objek yang mewakili entitas dunia nyata.
Bedakan antara Stringbuffer dan Stringbuilder dalam pemrograman Java
StringBuffer dan StringBuilder berbeda terutama dalam empat parameter: kinerja/kecepatan, keamanan thread, ketersediaan, dan sinkronisasi. StringBuilder adalah varian kelas StringBuffer yang tidak disinkronkan.
Perbedaan lain antara StringBuffer dan StringBuilder adalah bahwa yang pertama aman untuk thread, sedangkan yang terakhir tidak.
Bedakan antara JDK, JRE, dan JVM
Java Development Kit (JDK) mencakup penulisan, pemecahan masalah, dan analisis alat pemrograman Java. JRE adalah sekumpulan kelas dan objek serta file lain yang menyertai yang dibutuhkan JVM untuk menjalankan aplikasi. JVM tidak menyediakan alat pengembangan perangkat lunak apa pun.
Java Development Kit (JDK) adalah produk perangkat lunak untuk membuat aplikasi Java. JRE adalah paket perangkat lunak yang berisi perpustakaan kelas Java dan komponen lain yang diperlukan untuk menjalankan pemrograman Java. Java Virtual Machine (JVM) menafsirkan bahasa byte Java dan menciptakan suasana yang cocok untuk eksekusi. JDK adalah spesifik platform, JRE bergantung pada platform, dan JVM bergantung pada platform pada skala yang lebih tinggi.
Tentukan warisan
Di Jawa, pewarisan adalah prinsip yang mentransfer karakteristik dari satu kelas ke kelas lain; Ini adalah kerangka kerja di Jawa di mana satu kelas memperoleh properti dari yang lain atau memungkinkan satu kelas memiliki karakteristik (metode dan atribut) dari yang lain.
Apa itu kelas di Jawa?
Kelas adalah elemen dasar dalam pemrograman berorientasi objek. Ini adalah format yang mendefinisikan status dan fungsi yang dikaitkan dengan instantiasi kelas. Kelas juga merupakan template logis karena digunakan untuk membangun model yang memiliki atribut dan metode yang sama.
Bandingkan overloading dan override di Java
Overloading mengacu pada memiliki metode kelas yang sama dengan nama yang sama, tetapi masing-masing memiliki berbagai kriteria atau kriteria yang sama dengan berbagai jenis dan pesanan. Sedangkan Overriding berarti memiliki subclass dengan teknik yang sama di bawah judul yang sama dengan superclass dan jenis kriteria dan nilai kembalian yang sama.
Selain itu, overloading adalah polimorfisme baris perintah dengan ikatan statis dan overloading metode statis. Sedangkan overriding adalah polimorfisme eksekusi program dengan ikatan yang fleksibel dan ketidakmampuan untuk menimpa metode statis.
Jelaskan pembuatan singleton thread-safe di Java menggunakan penguncian dua kali lipat
Singleton Pattern adalah pola desain yang terkenal di mana sebuah kelas dibatasi hanya pada satu instance sepanjang hidupnya, dan beberapa klien berbagi instance tersebut. Pola Singleton diwujudkan dengan dua tanggung jawab utama: yang pertama adalah memastikan bahwa hanya satu instance kelas yang dihasilkan. Yang kedua adalah menyediakan metode yang setiap orang memiliki akses di seluruh dunia ke instance spesifik itu.
Salah satu tantangan yang dihadapi desain Singleton dalam program multithreading adalah memastikan bahwa hanya satu instance kelas yang dihasilkan, meskipun berbagai pengguna memanggil teknik getInstance() pada saat yang bersamaan. Sistem penguncian yang diperiksa dua kali memperbaiki dilema ini dengan memastikan bahwa sinkronisasi hanya digunakan ketika kasus tunggal Singleton dibuat kapan saja fungsi getInstance() dipanggil untuk pertama kalinya dan bahwa instance yang sama dikembalikan lagi tanpa sinkronisasi di atas semua contoh lainnya.
Pertanyaan wawancara Java tingkat menengah
Apa itu JDK? Sebutkan varian JDK?
JDK adalah singkatan dari Java Development Kit. Java Development Kit (JDK) adalah perangkat lunak masuk selama pengembangan aplikasi Java apa pun. Java Development Kit (JDK) mencakup penulisan, pemecahan masalah, dan analisis alat pemrograman Java.
Pada dasarnya, JDK adalah implementasi Java Standard Edition atau Java Enterprise Edition. Java berganti nama menjadi Java 2 (disingkat menjadi Java 2 SDK atau J2SDK) pada tahun 1998 karena peningkatan platform yang signifikan. Ini mengembangkan tiga versi Java terpisah untuk mendukung berbagai aplikasi.
- J2SE adalah singkatan dari Java 2 Platform, Basic and Usual Edition, dan ditujukan untuk konteks desktop dan server.
- J2EE adalah singkatan dari Java 2 Platform, Corporate Edition, dirancang untuk aplikasi bisnis dan mencakup kemampuan seperti penyimpanan berbasis cloud dan dukungan layanan online.
- J2ME (Java 2 Platform, Micro Edition) ditujukan untuk gadget atau platform yang diinstal dan seluler.
Namun, pada tahun 2004, label varian dimodifikasi menjadi Java ME (Edisi Mikro Platform Java), Java EE (Edisi Perusahaan Platform Java), dan Java SE (Edisi Standar Platform Java). Moniker kit pengembangan juga diubah dari "Java 2 SDK" menjadi "JDK." Juga, konteks operasi diganti namanya menjadi "JRE" alih-alih "J2RE." Varian dengan versinya, Java SE 6 dan Java EE 5 masih digunakan.
Bisakah konstruktor mengembalikan nilai?
Memahami bahwa konstruktor tidak seperti teknik konvensional yang digunakan selama pemrograman di Jawa, entah bagaimana itu tidak mengembalikan atau mengembalikan hasil yang ditentukan, yang dapat menyebabkan efek atau dampak besar pada kode. Konstruktor dapat menyertakan instruksi yang tidak terbatas, tetapi tidak dapat mengembalikan atau mengembalikan nilai atau hasil dari pernyataan.

Jelaskan kata kunci 'INI' di Jawa
'Ini' adalah istilah khusus di Java yang menentukan entitas yang sedang dijalankan oleh programmer. Kata kunci hanya diawali dengan parameter berbeda yang terkait dengan penggunaan operator – titik (.), yang dapat digunakan dari dalam metode atau konstruktor. Kata kunci 'Ini' tidak terlalu sering digunakan karena sebagian besar aplikasi dimaksudkan untuk menghindari situasi yang memerlukannya. Akses ke variabel instan disediakan melalui istilah 'ini'.
Jelaskan kata kunci 'SUPER' di Jawa
Di Java, kata kunci 'super' adalah parameter relatif yang terkait dengan konsep pewarisan yang mengacu pada instance kelas induk, dengan asumsi bahwa kelas turunan memiliki parameter dalam grup atau metode dengan nama yang sama dengan kelas induk. Istilah ini sebagian besar digunakan ketika subkelas perlu mengakses parameter, fungsi, atau Konstruktor di kelas dasar.
Jelaskan metode overloading di Java
Di Java, overloading mengacu pada metode yang memiliki nama dan kelas yang sama tetapi dengan berbagai kriteria dan sebaliknya. Dua atau lebih teknik memiliki nama dan kelas yang seragam tetapi tanda tangan yang berbeda dalam kelebihan beban. Overloading adalah polimorfisme baris perintah yang meregangkan perilaku suatu metode, sehingga menyebabkan kelebihan beban.
Bisakah kita membebani metode statis di Jawa?
Di Jawa, metode statis berperilaku mirip dengan metodologi reguler kelebihan beban dan, dengan demikian, dapat kelebihan beban. Namun, ada harus menawarkan metode statis tambahan dengan nama yang sama tetapi tanda tangan metodologi yang berbeda jika tujuannya adalah untuk membebani metode statis.
Tentukan pengikatan terlambat
Penjilidan terlambat adalah format yang menunjukkan bahwa kompiler tidak boleh melakukan pemeriksaan tipe pada pemanggilan metode, tidak ada pemeriksaan argumen, dan harus menyerahkan semuanya ke run-time (sebuah instance ada dalam pemrograman COM).
Tentukan pengiriman metode dinamis
Pengiriman metode dinamis mengacu pada penyelesaian atau perbaikan panggilan ke metode yang diganti pada waktu berjalan, bukan pada waktu kompilasi.
Mengapa fungsi hapus lebih cepat dalam daftar tertaut daripada array
Operasi penghapusan LinkedList mengembalikan O(1). Tetapi operasi penghapusan ArrayList mengembalikan O(n) dalam kasus terburuk, yaitu, saat menghapus entri pertama dan O(1) dalam skenario terbaik saat menghapus elemen terakhir. Jika dibandingkan dengan ArrayList, penghapusan elemen LinkedList lebih cepat. Alasan untuk ini adalah bahwa setiap elemen LinkedList memiliki dua pointer (alamat) yang menunjuk ke kedua anggota tetangga dalam daftar. Akibatnya, menghapus node melibatkan memodifikasi posisi referensi di dua komponen node yang berdekatan.
Pertanyaan wawancara Java tingkat lanjut untuk yang berpengalaman
Meskipun pewarisan adalah konsep oops yang populer, itu kurang menguntungkan daripada komposisi. Menjelaskan!
Kelas Java hanya dapat memiliki satu superclass karena banyak pewarisan tidak didukung dalam bahasa tersebut. Dalam berbagai fungsi, seperti membaca dan menulis ke file, struktur kompilasi lebih disukai. Anda dapat membandingkannya dengan kemampuan penulis dan pembaca anggota pribadi. Dengan bantuan komposisi, dimungkinkan untuk mencegah pemecahan enkapsulasi sambil mencapai fleksibilitas yang signifikan. Pengujian unit, yang tidak mungkin karena pewarisan, dapat dicapai dengan bantuan komposisi.
Bagaimana pembuatan string menggunakan new() berbeda dari literal?
Saat kita menggunakan new() untuk menghasilkan String, objek baru dibangun di memori heap. Dibutuhkan lebih lama untuk mengeksekusi dan tertinggal dibandingkan dengan String literal. Namun, ketika sudah ada data yang ditetapkan dalam String untuk String yang dibuat menggunakan String literal, ada hubungan data yang sama dengan variabel String di kumpulan String. Dan ini dicapai tanpa harus membuat String yang sama sekali baru dengan data yang sama.
Apakah melebihi batas memori dimungkinkan dalam suatu program meskipun memiliki pengumpul sampah?
Ya. Kehadiran pengumpul sampah sama sekali tidak menghentikan atau menghalangi program untuk kehabisan memori.
Mengapa sinkronisasi diperlukan? Jelaskan dengan bantuan contoh yang relevan
Sinkronisasi adalah mekanisme yang memastikan bahwa semua utas bertepatan berjalan secara bersamaan. Sinkronisasi mencegah masalah konsistensi memori yang dihasilkan oleh tampilan memori sinergis yang tidak konsisten. Dalam metode yang disinkronkan, objek dipantau dan disimpan di tempatnya oleh utas. Jika utas lain menjalankan metode yang disinkronkan, utas ini akan dihentikan hingga utas sebelumnya melepaskan monitor.
Katakanlah, dalam situasi di mana diperlukan untuk menemukan jumlah permintaan yang dibuat ke URL tertentu, menjalankan lebih dari satu permintaan pasti akan membuat jumlah yang tidak menentu. Katakanlah utas 1 melihat hitungannya sebagai 12; itu akan ditingkatkan menjadi 13 dengan menambahkan satu. Secara bersamaan, utas lain 2 juga melihat hitungan sebagai 12 dan, dalam nada yang sama, ditingkatkan menjadi 13 dengan menambahkan 1. Ketidakpastian dalam nilai hitungan ini terjadi karena alih-alih nilai akhir yang diantisipasi dari 14, apa yang akan didapat sebagai hasil akhir nilainya akan menjadi 13. Di sinilah sinkronisasi berperan saat fungsi meningkat (), sehingga akses bersamaan ke hitungan dicegah.
Bisakah Anda menjelaskan siklus hidup utas Java?
Di Jawa, siklus hidup sebuah utas didefinisikan sebagai transformasi status utas dari lahir hingga mati. Ketika instance thread dibuat, dan fungsi start() dari kelas Thread dipanggil, thread memasuki status runnable. Saat kelas Thread memanggil metode sleep() atau wait() , thread menjadi tidak dapat dijalankan.
Apa yang bisa menjadi tradeoff antara penggunaan array yang tidak berurutan versus penggunaan array yang dipesan?
Satu keuntungan utama dari array terurut adalah ia memiliki kompleksitas waktu pencarian O(log n). Operasi penyisipan pada array terurut memiliki kompleksitas temporal O(n) karena anggota dengan skor yang lebih besar harus digeser untuk membuat varian baru. Di sisi lain, operasi penyisipan array yang tidak berurutan membutuhkan waktu tetap O(1).
Apakah mungkin untuk mengimpor kelas atau paket yang sama dua kali di java, dan apa yang terjadi selama run-time?
Ya. Terlepas dari seberapa sering kelas atau paket diimpor, JVM akan memuatnya secara internal satu kali selama run-time.
Apakah blok "Akhirnya" akan dieksekusi jika sistem kode. Keluar(o) ditulis di akhir blok coba?
Tidak, blok 'finally' tidak akan dijalankan dalam skenario ini karena ketika System.exit (0) diaktifkan, kontrol langsung meninggalkan program dan, oleh karena itu, "finally" tidak pernah dijalankan. Jika Sistem. exit(0) dipanggil tanpa pengecualian; program tidak akan berjalan.
Apa yang Anda pahami dengan antarmuka penanda di Jawa?
Antarmuka tanpa konstanta atau metode dikenal sebagai antarmuka penanda atau antarmuka penandaan karena memberikan informasi kompiler dan JVM tentang jenis run-time untuk objek. Antarmuka jarak jauh, Serializable, dan Cloneable adalah contoh antarmuka penanda, dan semua antarmuka ini kosong.
Jelaskan istilah "Inisialisasi kurung kurawal" di Jawa
Di Jawa, inisialisasi kurung kurawal adalah campuran dari 2 proses terpisah. Dua kurung kurawal ({) diperhatikan dalam situasi ini. Inisialisasi kurung kurawal terjadi ketika dua kurung kurawal berturut-turut ditampilkan dalam kode java.
Konstruksi kelas dalam yang tidak disebutkan namanya adalah kurung kurawal pertama, sedangkan blok inisialisasi adalah kurung kurawal kedua. Inisialisasi Java Double Brace terjadi ketika kelas dalam yang tidak disebutkan namanya menggunakan blok inisialisasi.
Kesimpulan
Sebagai programmer pemula atau bahkan programmer berpengalaman, pertanyaan wawancara ini mungkin tampak sedikit rumit. Tetapi jika Anda berkomitmen untuk mempraktikkan pertanyaan-pertanyaan ini, Anda pasti akan mendapatkan kesempatan berikutnya yang Anda dapatkan.