Unduh PDF
Kami telah mengumpulkan Pertanyaan dan Jawaban Wawancara Java yang paling sering ditanyakan yang akan membantu Anda mempersiapkan pertanyaan wawancara Java Dasar yang mungkin ditanyakan oleh pewawancara selama wawancara Anda. Dalam daftar pertanyaan wawancara Basic Java ini, kami telah membahas semua pertanyaan wawancara Core Java dasar dan lanjutan yang umum ditanyakan dengan jawaban terperinci untuk membantu Anda menyelesaikan wawancara kerja.
Daftar berikut berisi 100 pertanyaan wawancara Core Java yang penting untuk mahasiswa baru serta pertanyaan dan jawaban wawancara Java untuk programmer berpengalaman untuk membantu mereka mempersiapkan wawancara. Panduan rinci pertanyaan wawancara untuk Pemrograman Java ini akan membantu Anda memecahkan wawancara kerja Anda dengan mudah.
Pertanyaan dan Jawaban Wawancara Inti Java untuk Freshers dan Berpengalaman
P1. Apa perbedaan antara Kelas Dalam dan Sub-Kelas?
Jawab: Kelas dalam adalah kelas yang bertumpuk di dalam kelas lain. Kelas dalam memiliki hak akses untuk kelas yang menumpuknya dan dapat mengakses semua variabel dan metode yang ditentukan di kelas luar.
Sub-kelas adalah kelas yang diturunkan dari kelas lain yang disebut kelas super. Sub-kelas dapat mengakses semua metode dan bidang publik dan dilindungi dari kelas supernya.
P2. Apa sajakah penentu akses untuk kelas Java?
Jawab: Di Java, penentu akses adalah kata kunci yang digunakan sebelum nama kelas yang menentukan cakupan akses. Jenis penentu akses untuk kelas adalah:
1. Umum: Kelas, Metode, Bidang dapat diakses dari mana saja.
2. Dilindungi: Metode, Field dapat diakses dari kelas yang sama atau dari sub-kelas, dan dari kelas paket yang sama, tetapi tidak dari luar.
3. Default: Method, Field, class hanya dapat diakses dari paket yang sama dan bukan dari luar paket aslinya.
4. Pribadi: Metode, Bidang dapat diakses dari kelas yang sama tempat mereka berasal.
P3. Apa tujuan dari metode Statis dan variabel statis?
Jawab: Jika ada persyaratan untuk membagikan metode atau variabel antara beberapa objek dalam sebuah kelas daripada membuat salinan terpisah untuk setiap objek, kami menggunakan kata kunci statis untuk membuat metode atau variabel yang dibagikan untuk semua objek.
P4. Apa itu enkapsulasi data dan apa signifikansinya?
Jawab: Enkapsulasi adalah konsep dalam Pemrograman Berorientasi Objek untuk menggabungkan properti dan metode dalam satu unit.
Enkapsulasi membantu pemrogram untuk mengikuti pendekatan modular untuk pengembangan perangkat lunak karena setiap objek memiliki kumpulan metode dan variabelnya sendiri dan melayani fungsinya secara independen dari objek lain. Enkapsulasi juga berfungsi untuk menyembunyikan data.
P5. Apa itu kelas tunggal? Berikan contoh praktis penggunaannya.
Kelas singleton di java hanya dapat memiliki satu instance dan karenanya semua metode dan variabelnya hanya dimiliki satu instance. Konsep kelas Singleton berguna untuk situasi ketika ada kebutuhan untuk membatasi jumlah objek untuk sebuah kelas.
Contoh terbaik dari skenario penggunaan tunggal adalah ketika ada batasan untuk hanya memiliki satu koneksi ke database karena beberapa batasan driver atau karena masalah perizinan.
P6. Apa itu Loops di Java? Apa tiga jenis loop?
Jwb: Looping digunakan dalam pemrograman untuk mengeksekusi pernyataan atau blok pernyataan berulang kali. Ada tiga jenis loop di Java:
1) Untuk Loops
For loop digunakan di java untuk mengeksekusi pernyataan berulang kali selama beberapa kali. Untuk loop digunakan ketika beberapa kali untuk mengeksekusi pernyataan diketahui programmer.
2) While Loops
While loop digunakan ketika pernyataan tertentu perlu dijalankan berulang kali hingga suatu kondisi terpenuhi. Dalam while loop, kondisi diperiksa terlebih dahulu sebelum eksekusi pernyataan.
3) Do While Loops
Do While Loop sama dengan While loop dengan hanya perbedaan kondisi itu diperiksa setelah eksekusi blok pernyataan. Karenanya dalam kasus do while loop, pernyataan dieksekusi setidaknya sekali.
T7: Apa itu Infinite Loop? Bagaimana infinite loop dideklarasikan?
Jawab: Perulangan tak terbatas berjalan tanpa syarat apa pun dan berjalan tak terhingga. Perulangan tak terbatas dapat dipatahkan dengan mendefinisikan logika pemutusan apa pun di badan blok pernyataan.
Loop tak terbatas dideklarasikan sebagai berikut:
for (;;){// Statements to execute// Add any loop breaking logic}
P8. Apa perbedaan antara Pernyataan Continue dan Break?
Jwb: putus dan lanjutkan adalah dua kata kunci penting yang digunakan dalam Loops. Ketika kata kunci break digunakan dalam satu loop, loop langsung rusak sementara kata kunci lanjutkan digunakan, iterasi saat ini rusak dan loop berlanjut dengan iterasi berikutnya.
Dalam contoh di bawah ini, Loop rusak ketika penghitung mencapai 4.
for (counter = 0; counter & lt; 10; counter++)system.out.println(counter);if (counter == 4) {break;}}
Dalam contoh di bawah ini ketika penghitung mencapai 4, loop melompat ke iterasi berikutnya dan pernyataan apa pun setelah kata kunci lanjutkan dilewati untuk iterasi saat ini.
for (counter = 0; counter < 10; counter++)system.out.println(counter);if (counter == 4) {continue;}system.out.println("This will not get printed when counter is 4");}
P9. Apa perbedaan antara variabel double dan float di Java?
Jawab: Di java, float membutuhkan 4 byte dalam memori sementara Double membutuhkan 8 byte dalam memori. Float adalah angka desimal floating point presisi tunggal sedangkan Double adalah angka desimal presisi ganda.
P10. Apa Kata Kunci Akhir di Java? Berikan contoh.
Jawab: Di java, sebuah konstanta dideklarasikan menggunakan kata kunci Final. Nilai hanya dapat diberikan sekali dan setelah penugasan, nilai konstanta tidak dapat diubah.
Dalam contoh di bawah ini, sebuah konstanta dengan nama const_val dideklarasikan dan diberi nilai:
Private Final int const_val = 100
Jika sebuah metode dideklarasikan sebagai final, metode ini TIDAK dapat diganti oleh subclass. Metode ini lebih cepat daripada metode lainnya, karena diselesaikan pada waktu yang telah ditentukan.
Ketika sebuah kelas dideklarasikan sebagai final, ia tidak dapat disubkelas. Contoh Kelas String, Integer, dan pembungkus lainnya.
P11. Apa itu operator terner? Berikan contoh.
Jwb: Operator ternary, juga disebut operator kondisional digunakan untuk memutuskan nilai mana yang akan diberikan ke variabel berdasarkan evaluasi nilai Boolean. Ini dilambangkan sebagai?
Dalam contoh di bawah ini, jika peringkatnya 1, status diberi nilai "Selesai" dan "Tertunda".
public class conditionTest {public static void main(String args[]) {String status;int rank = 3;status = (rank == 1) ? "Done" : "Pending";System.out.println(status);}}
T12: Bagaimana Anda bisa menghasilkan nomor acak di Java?
Jawab:
- Menggunakan Math.random () Anda dapat menghasilkan angka acak dalam kisaran yang lebih besar dari atau sama dengan 0,1 dan kurang dari 1,0
- Menggunakan kelas Acak dalam paket java.util
P13. Apa itu switch case default? Beri contoh.
Jwb: Dalam pernyataan sakelar, kasus default dijalankan ketika tidak ada kondisi sakelar lain yang cocok. Kasus default adalah kasus opsional. Ini hanya dapat dideklarasikan setelah semua kasus switch lainnya telah dikodekan.
Dalam contoh di bawah ini, ketika skor bukan 1 atau 2, kasus default digunakan.
public class switchExample {int score = 4;public static void main(String args[]) {switch (score) {case 1:system.out.println("Score is 1");break;case 2:system.out.println("Score is 2");break;default:system.out.println("Default Case");}}}
P14. Apa kelas dasar di Java dari mana semua kelas diturunkan?
Jawab: java.lang.object
P15. Bisakah metode main () di Java dapat mengembalikan data apa pun?
Jawab: Dalam java, metode main () tidak dapat mengembalikan data apa pun dan karenanya, selalu dideklarasikan dengan tipe pengembalian void.
P16. Apa itu Paket Java? Apa pentingnya paket?
Jawab: Di Java, paket adalah kumpulan kelas dan antarmuka yang digabungkan bersama karena terkait satu sama lain. Penggunaan paket membantu pengembang untuk memodularisasi kode dan mengelompokkan kode agar dapat digunakan kembali dengan benar. Setelah kode dikemas dalam Paket, kode dapat diimpor ke kelas lain dan digunakan.
P17. Bisakah kita mendeklarasikan kelas sebagai Abstrak tanpa metode abstrak?
Jawab: Ya, kita dapat membuat kelas abstrak dengan menggunakan kata kunci abstrak sebelum nama kelas meskipun tidak memiliki metode abstrak. Namun, jika sebuah kelas memiliki bahkan satu metode abstrak, itu harus dideklarasikan sebagai abstrak jika tidak maka akan memberikan kesalahan.
P18. Apa perbedaan antara Kelas Abstrak dan Antarmuka di Java?
Jawab: Perbedaan utama antara kelas abstrak dan antarmuka adalah bahwa antarmuka hanya dapat memiliki deklarasi metode statis publik tanpa implementasi konkret sementara kelas abstrak dapat memiliki anggota dengan penentu akses apa pun (publik, privat, dll) dengan atau tanpa implementasi konkret.
Perbedaan utama lainnya dalam penggunaan kelas dan antarmuka abstrak adalah bahwa kelas yang mengimplementasikan antarmuka harus mengimplementasikan semua metode antarmuka sementara kelas yang mewarisi dari kelas abstrak tidak memerlukan implementasi semua metode kelas supernya.
Sebuah kelas dapat mengimplementasikan banyak antarmuka tetapi hanya dapat memperluas satu kelas abstrak.
P19. Apa implikasi kinerja dari Antarmuka atas kelas abstrak?
Jawab: Performa antarmuka lebih lambat dibandingkan dengan kelas abstrak karena pengalihan tambahan diperlukan untuk antarmuka. Faktor kunci lain yang perlu dipertimbangkan oleh pengembang adalah bahwa setiap kelas hanya dapat memperluas satu kelas abstrak sementara kelas dapat mengimplementasikan banyak antarmuka.
Penggunaan antarmuka juga memberikan beban tambahan pada pengembang karena setiap kali antarmuka diimplementasikan di kelas; pengembang dipaksa untuk mengimplementasikan setiap metode antarmuka.
P20. Apakah Mengimpor paket juga mengimpor sub-paketnya di Java?
Jawab: Di java, ketika sebuah paket diimpor, sub-paketnya tidak diimpor dan pengembang perlu mengimpornya secara terpisah jika diperlukan.
Misalnya, jika pengembang mengimpor universitas paket. *, Semua kelas dalam paket bernama universitas akan dimuat tetapi tidak ada kelas dari sub-paket yang dimuat. Untuk memuat kelas dari sub-paketnya (katakanlah departemen), pengembang harus mengimpornya secara eksplisit sebagai berikut:
Import university.department. *
P21. Bisakah kita mendeklarasikan metode utama kelas kita sebagai privat?
Jawab: Di java, metode utama harus statis publik untuk menjalankan aplikasi apa pun dengan benar. Jika metode utama dideklarasikan sebagai pribadi, pengembang tidak akan mendapatkan kesalahan kompilasi apa pun, namun itu tidak akan dieksekusi dan akan memberikan kesalahan waktu proses.
P22. Bagaimana kita bisa melewatkan argumen ke fungsi dengan referensi alih-alih nilai lewat?
Jawab: Di java, kita bisa mengirimkan argumen ke suatu fungsi hanya dengan nilai dan bukan dengan referensi.
P23. Bagaimana sebuah objek diserialkan di java?
Jawab: Di java, untuk mengubah objek menjadi aliran byte dengan serialisasi, antarmuka dengan nama Serializable diimplementasikan oleh kelas. Semua objek dari kelas yang mengimplementasikan antarmuka yang dapat diserialkan mendapatkan serial dan statusnya disimpan dalam aliran byte.
P24. Kapan kita harus menggunakan serialisasi?
Jawab: Serialisasi digunakan ketika data perlu dikirim melalui jaringan. Menggunakan serialisasi, status objek disimpan dan diubah menjadi aliran byte. Aliran byte ditransfer melalui jaringan dan objek dibuat ulang di tujuan.
P25. Apakah Try Block wajib diikuti oleh Catch Block di Java untuk penanganan Exception?
Jwb: Blok percobaan harus diikuti oleh blok Tangkap atau blok Akhirnya atau keduanya. Pengecualian apa pun yang dilemparkan dari blok percobaan perlu ditangkap di blok penangkap atau tugas spesifik apa pun yang harus dilakukan sebelum aborsi kode diletakkan di blok Akhirnya.
P26. Apakah ada cara untuk melewati blok pengecualian Akhirnya meskipun beberapa pengecualian terjadi di blok pengecualian?
Jwb: Jika pengecualian dimunculkan di blok Try, kontrol lolos ke blok penangkapan jika ada sebaliknya untuk akhirnya memblokir. Akhirnya blok selalu dieksekusi ketika pengecualian terjadi dan satu-satunya cara untuk menghindari eksekusi pernyataan apa pun di blok Akhirnya adalah dengan membatalkan kode secara paksa dengan menulis baris kode berikut di akhir blok percobaan:
System.exit(0);
P27. Kapan konstruktor kelas dipanggil?
Jawab: Konstruktor kelas dipanggil setiap kali objek dibuat dengan kata kunci baru.
Misalnya, di kelas berikut dua objek dibuat menggunakan kata kunci baru dan karenanya, konstruktor dipanggil dua kali.
public class const_example {const_example() {system.out.println("Inside constructor");}public static void main(String args[]) {const_example c1 = new const_example();const_example c2 = new const_example();}}
P28. Bisakah kelas memiliki banyak konstruktor?
Jawab: Ya, kelas dapat memiliki banyak konstruktor dengan parameter berbeda. Konstruktor mana yang digunakan untuk pembuatan objek bergantung pada argumen yang diteruskan saat membuat objek.
P29. Bisakah kita mengganti metode statis kelas?
Jawab: Kami tidak dapat mengganti metode statis. Metode statis adalah milik kelas dan bukan objek individu dan diselesaikan pada saat kompilasi (bukan saat runtime). Bahkan jika kita mencoba mengganti metode statis, kita tidak akan mendapatkan kesalahan kepatuhan, atau dampak penggantian saat menjalankan kode.
P30. Pada contoh di bawah ini, apa yang akan menjadi outputnya?
public class superclass {public void displayResult() {system.out.println("Printing from superclass");}}public class subclass extends superclass {public void displayResult() {system.out.println("Displaying from subClass");super.displayResult();}public static void main(String args[]) {subclass obj = new subclass();obj.displayResult();}}
Jawab : Outputnya adalah:
Menampilkan dari subclass
Menampilkan dari superclass
P31. Apakah String adalah tipe data di java?
Jawab: String bukanlah tipe data primitif di java. Ketika string dibuat di java, sebenarnya itu adalah objek kelas Java.Lang.String yang dibuat. Setelah pembuatan objek string ini, semua metode bawaan kelas String dapat digunakan pada objek string.
P32. Pada contoh di bawah ini, berapa banyak Objek String yang dibuat?
String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";
Jawab: Dalam contoh di atas, dua objek kelas Java.Lang.String dibuat. s1 dan s3 adalah referensi ke objek yang sama.
P33. Mengapa String di Java disebut Immutable?
Jawab: Di java, objek string disebut tidak dapat diubah karena setelah nilai ditetapkan ke string, itu tidak dapat diubah dan jika diubah, objek baru dibuat.
Dalam contoh di bawah ini, referensi str mengacu pada objek string yang memiliki nilai "Nilai satu".
String str="Value One";
Ketika nilai baru ditetapkan padanya, objek String baru dibuat dan referensi dipindahkan ke objek baru.
str="New Value";
P34. Apa perbedaan antara Array dan Vector?
Jawab: Sebuah array mengelompokkan data dengan tipe primitif yang sama dan bersifat statis sementara vektor bersifat dinamis dan dapat menyimpan data dari tipe data yang berbeda.
P35. Apa itu multi-threading?
Jawab: Multi threading adalah konsep pemrograman untuk menjalankan banyak tugas secara bersamaan dalam satu program. Thread berbagi tumpukan proses yang sama dan berjalan secara paralel. Ini membantu dalam peningkatan kinerja program apa pun.
P36. Mengapa Antarmuka Runnable digunakan di Java?
Jawab: Antarmuka runnable digunakan di java untuk mengimplementasikan aplikasi multi-thread. Antarmuka Java.Lang.Runnable diimplementasikan oleh kelas untuk mendukung multi threading.
P37. Apa dua cara menerapkan multi-threading di Java?
Jawab: Aplikasi multi-utas dapat dikembangkan di Java dengan menggunakan salah satu dari dua metodologi berikut:
1. Dengan menggunakan Antarmuka Java.Lang.Runnable. Kelas mengimplementasikan antarmuka ini untuk mengaktifkan multi threading. Ada metode Run () di antarmuka ini yang diterapkan.
2. Dengan menulis kelas yang memperluas kelas Java.Lang.Thread.
P38. Ketika banyak perubahan diperlukan dalam data, mana yang harus menjadi preferensi untuk digunakan? String atau StringBuffer?
Jawab: Karena StringBuffers bersifat dinamis dan kita dapat mengubah nilai objek StringBuffer tidak seperti String yang tidak dapat diubah, itu selalu merupakan pilihan yang baik untuk menggunakan StringBuffer ketika data diubah terlalu banyak. Jika kita menggunakan String dalam kasus seperti itu, untuk setiap perubahan data, objek String baru akan dibuat yang akan menjadi biaya tambahan.
P39. Apa tujuan menggunakan Break dalam setiap kasus Pernyataan Switch?
Jwb: Istirahat digunakan setelah setiap kasus (kecuali yang terakhir) dalam sakelar sehingga kode rusak setelah kasus yang valid dan tidak mengalir dalam kasus yang sedang berjalan juga.
Jika jeda tidak digunakan setelah setiap kasus, semua kasus setelah kasus yang valid juga dieksekusi sehingga menghasilkan hasil yang salah.
P40. Bagaimana pengumpulan sampah dilakukan di Jawa?
Jwb: Di java, ketika sebuah objek tidak direferensikan lagi, pengumpulan sampah terjadi dan objek dimusnahkan secara otomatis. Untuk pengumpulan sampah java otomatis memanggil metode System.gc () atau metode Runtime.gc ().
P41. Bagaimana kita dapat mengeksekusi kode apapun bahkan sebelum metode utama?
Jwb: Jika kita ingin mengeksekusi pernyataan apa pun bahkan sebelum membuat objek pada waktu pemuatan kelas, kita dapat menggunakan blok kode statis di kelas. Setiap pernyataan di dalam blok kode statis ini akan dieksekusi satu kali pada saat memuat kelas bahkan sebelum pembuatan objek dalam metode utama.
P42. Bisakah kelas menjadi kelas super dan sub-kelas pada saat yang sama? Beri contoh.
Jawab: Jika ada hierarki pewarisan yang digunakan, kelas dapat menjadi kelas super untuk kelas lain dan sub-kelas untuk kelas lain pada waktu yang sama.
Pada contoh di bawah ini, kelas benua adalah sub-kelas dari kelas dunia dan itu adalah kelas super dari kelas negara.
public class world {… .}public class continenet extends world {… }public class country extends continent {… .}
P43. Bagaimana objek kelas dibuat jika tidak ada konstruktor yang didefinisikan di kelas?
Jawab: Meskipun tidak ada konstruktor eksplisit yang ditentukan dalam kelas java, objek berhasil dibuat karena konstruktor default secara implisit digunakan untuk pembuatan objek. Konstruktor ini tidak memiliki parameter.
P44. Dalam multi-threading, bagaimana kita bisa memastikan bahwa sumber daya tidak digunakan oleh banyak utas secara bersamaan?
Jawab: Dalam multi-threading, akses ke sumber daya yang dibagikan di antara beberapa utas dapat dikontrol dengan menggunakan konsep sinkronisasi. Dengan menggunakan kata kunci tersinkronisasi, kami dapat memastikan bahwa hanya satu utas yang dapat menggunakan sumber daya bersama pada satu waktu dan utas lainnya dapat mengontrol sumber daya hanya setelah utas bebas dari utas lain yang menggunakannya.
P45. Bisakah kita memanggil konstruktor kelas lebih dari sekali untuk sebuah objek?
Jawab: Pembuat dipanggil secara otomatis saat kita membuat objek menggunakan kata kunci baru. Ini dipanggil hanya sekali untuk sebuah objek pada saat pembuatan objek dan karenanya, kita tidak dapat memanggil konstruktor lagi untuk sebuah objek setelah pembuatannya.
P46. Ada dua kelas bernama classA dan classB. Kedua kelas tersebut berada dalam paket yang sama. Bisakah anggota pribadi classA dapat diakses oleh objek classB?
Jawab: Anggota privat kelas tidak dapat diakses di luar cakupan kelas itu dan kelas lain bahkan dalam paket yang sama tidak dapat mengaksesnya.
P47. Bisakah kita memiliki dua metode di kelas dengan nama yang sama?
Jawab: Kita dapat mendefinisikan dua metode dalam kelas dengan nama yang sama tetapi dengan jumlah / jenis parameter yang berbeda. Metode mana yang akan dipanggil akan bergantung pada parameter yang diteruskan.
Misalnya di kelas di bawah ini kami memiliki dua metode cetak dengan nama yang sama tetapi parameter yang berbeda. Bergantung pada parameternya, yang sesuai akan dipanggil:
public class methodExample {public void print() {system.out.println("Print method without parameters.");}public void print(String name) {system.out.println("Print method with parameter");}public static void main(String args[]) {methodExample obj1 = new methodExample();obj1.print();obj1.print("xx");}}
P48. Bagaimana cara membuat salinan objek java?
Jawab: Kita dapat menggunakan konsep kloning untuk membuat salinan suatu objek. Menggunakan klon, kami membuat salinan dengan keadaan sebenarnya dari suatu objek.
Clone () adalah metode antarmuka Cloneable dan karenanya, antarmuka Cloneable perlu diimplementasikan untuk membuat salinan objek.
P49. Apa keuntungan menggunakan warisan?
Jawab: Manfaat utama menggunakan pewarisan adalah penggunaan kembali kode karena pewarisan memungkinkan sub-kelas untuk menggunakan kembali kode kelas supernya. Polimorfisme (Perluasan) adalah manfaat besar lainnya yang memungkinkan fungsionalitas baru diperkenalkan tanpa memengaruhi kelas turunan yang ada.
P50. Apa penentu akses default untuk variabel dan metode kelas?
Jawab: Penentu akses default untuk variabel dan metode dilindungi paket, yaitu variabel dan kelas tersedia untuk kelas lain tetapi dalam paket yang sama, bukan di luar paket.
P51. Berikan contoh penggunaan Pointer di kelas Java.
Jwb: Tidak ada petunjuk di Jawa. Jadi kita tidak bisa menggunakan konsep pointer di Java.
P52. Bagaimana kita bisa membatasi pewarisan untuk sebuah kelas sehingga tidak ada kelas yang bisa diwarisi darinya?
Jawab: Jika kita ingin sebuah kelas tidak diperpanjang lebih jauh oleh kelas manapun, kita dapat menggunakan kata kunci Final dengan nama kelas tersebut.
Dalam contoh berikut, kelas Stone adalah Final dan tidak dapat diperpanjang
public Final Class Stone {// Class methods and Variables}
P53. Apa cakupan akses penentu Akses Terproteksi?
Jawab: Ketika metode atau variabel dideklarasikan dengan penentu akses dilindungi, itu menjadi dapat diakses di kelas yang sama, kelas lain dari paket yang sama serta sub-kelas.
Pengubah |
Kelas |
Paket |
Subkelas |
Dunia |
publik |
Y |
Y |
Y |
Y |
terlindung |
Y |
Y |
Y |
N |
tidak ada pengubah |
Y |
Y |
N |
N |
pribadi |
Y |
N |
N |
N |
P54. Apa perbedaan antara Stack dan Queue?
Jwb: Stack dan Queue keduanya digunakan sebagai placeholder untuk kumpulan data. Perbedaan utama antara tumpukan dan antrian adalah bahwa tumpukan didasarkan pada prinsip Last in First out (LIFO) sedangkan antrian didasarkan pada prinsip FIFO (First In First Out).
P55. Di java, bagaimana kita bisa melarang serialisasi variabel?
Jwb: Jika kita ingin variabel tertentu dari suatu kelas tidak diserialkan, kita dapat menggunakan kata kunci transient saat mendeklarasikannya. Misalnya, variabel trans_var di bawah ini adalah variabel sementara dan tidak dapat diserialkan:
public class transientExample {private transient trans_var;// rest of the code}
P56. Bagaimana kita bisa menggunakan tipe data primitif sebagai objek?
Jwb: Tipe data primitif seperti int dapat ditangani sebagai objek dengan menggunakan kelas pembungkusnya masing-masing. Misalnya, Integer adalah kelas pembungkus untuk tipe data primitif int. Kita dapat menerapkan metode berbeda ke kelas pembungkus, sama seperti objek lainnya.
P57. Jenis pengecualian apa yang ditangkap pada waktu kompilasi?
Jwb: Pengecualian yang dicentang dapat ditangkap pada saat kompilasi program. Pengecualian yang dicentang harus ditangani dengan menggunakan blok try catch dalam kode agar berhasil mengkompilasi kode.
P58. Jelaskan berbagai status utas.
Jwb: Untaian di Java dapat berupa salah satu dari status berikut:
- Siap: Saat utas dibuat, utas dalam status Siap.
- Berjalan: Utas yang saat ini sedang dieksekusi berada dalam status berjalan.
- Menunggu: Sebuah utas menunggu utas lain untuk membebaskan sumber daya tertentu sedang dalam keadaan menunggu.
- Mati: Utas yang mati setelah eksekusi berada dalam status mati.
P59. Bisakah kita menggunakan konstruktor default kelas bahkan jika konstruktor eksplisit didefinisikan?
Jawab: Java menyediakan konstruktor tanpa argumen default jika tidak ada konstruktor eksplisit yang ditentukan dalam kelas Java. Tetapi jika konstruktor eksplisit telah ditentukan, konstruktor default tidak dapat dipanggil dan pengembang hanya dapat menggunakan konstruktor yang ditentukan di kelas.
P60. Bisakah kita mengganti metode dengan menggunakan nama dan argumen metode yang sama tetapi tipe kembalian yang berbeda?
Jwb: Kondisi dasar dari penggantian metode adalah nama metode, argumen serta tipe kembalian harus persis sama seperti metode yang akan diganti. Karenanya, menggunakan tipe pengembalian yang berbeda tidak menimpa metode.
Q61. Apa yang akan menjadi output dari potongan kode berikut?
public class operatorExample {public static void main(String args[]) {int x = 4;system.out.println(x++);}}
Jwb: Dalam kasus ini, operator postfix ++ digunakan yang pertama mengembalikan nilai dan kemudian menambahkan. Oleh karena itu, outputnya akan menjadi 4.
P61. Seseorang berkata bahwa ia berhasil menyusun kelas java tanpa memiliki metode utama di dalamnya? Apa itu mungkin?
Jawab: metode utama adalah titik masuk kelas Java dan diperlukan untuk menjalankan program; kelas berhasil dikompilasi meskipun tidak memiliki metode utama. Itu tidak bisa dijalankan.
P62. Bisakah kita memanggil metode non-statis dari dalam metode statis?
Jawab: Metode non-Statis dimiliki oleh objek kelas dan memiliki cakupan level objek dan untuk memanggil metode non-Statis dari blok statis (seperti dari metode utama statis), objek kelas perlu dibuat pertama. Kemudian menggunakan referensi objek, metode ini dapat dipanggil.
P63. Apa dua variabel lingkungan yang harus diatur untuk menjalankan program Java?
Jawab: Program Java dapat dijalankan di mesin hanya setelah dua variabel lingkungan berikut disetel dengan benar:
- Variabel PATH
- Variabel CLASSPATH
P64. Bisakah variabel digunakan di Java tanpa inisialisasi?
Jawab: Di Java, jika variabel digunakan dalam kode tanpa inisialisasi sebelumnya dengan nilai yang valid, program tidak dapat dikompilasi dan memberikan kesalahan karena tidak ada nilai default yang ditetapkan ke variabel di Java.
P65. Bisakah kelas di Java diwarisi dari lebih dari satu kelas?
Jawab: Di Java, kelas dapat diturunkan hanya dari satu kelas dan bukan dari beberapa kelas. Beberapa warisan tidak didukung oleh Java.
P66. Bisakah konstruktor memiliki nama yang berbeda dari nama kelas di Java?
Jwb: Konstruktor di Java harus memiliki nama yang sama dengan nama kelas dan jika namanya berbeda, ia tidak bertindak sebagai konstruktor dan kompilator menganggapnya sebagai metode normal.
P67. Berapa output dari Round (3.7) dan Ceil (3.7)?
Jawab: Round (3,7) menghasilkan 4 dan Ceil (3,7) menghasilkan 4.
T68: Bisakah kita menggunakan goto di Java untuk berpindah ke baris tertentu?
Jawab: Di Java, tidak ada kata kunci goto dan java tidak mendukung fitur berpindah ke baris berlabel tertentu ini.
P69. Bisakah utas mati dimulai lagi?
Jwb: Di java, utas yang dalam keadaan mati tidak dapat dimulai lagi. Tidak ada cara untuk memulai kembali utas yang mati.
P70. Apakah pernyataan kelas berikut benar?
Jawab:
public abstract final class testClass {// Class methods and variables}
Jawab: Deklarasi kelas di atas salah karena kelas abstrak tidak dapat dideklarasikan sebagai Final.
P71. Apakah JDK diperlukan di setiap mesin untuk menjalankan program Java?
Jawab: JDK adalah Kit pengembangan Java dan diperlukan hanya untuk pengembangan dan untuk menjalankan program Java di mesin, JDK tidak diperlukan. Hanya JRE yang dibutuhkan.
P72. Apa perbedaan antara perbandingan yang dilakukan dengan metode sama dengan dan == operator?
Jwb: Di Java, metode equals () digunakan untuk membandingkan konten dari dua objek string dan mengembalikan nilai true jika keduanya memiliki nilai yang sama sementara == operator membandingkan referensi dari dua objek string.
Dalam contoh berikut, equals () mengembalikan nilai true karena dua objek string memiliki nilai yang sama. Namun == operator mengembalikan nilai salah karena kedua objek string merujuk ke objek yang berbeda:
public class equalsTest {public static void main(String args[]) {String str1 = new String("Hello World");String str2 = new String("Hello World");if (str1.equals(str2)){ // this condition is trueSystem.out.println("str1 and str2 are equal in terms of values");}if (str1 == str2) {//This condition is trueSystem.out.println("Both strings are referencing same object");} else{// This condition is NOT trueSystem.out.println("Both strings are referencing different objects");}}}
P73. Apakah mungkin untuk mendefinisikan metode di kelas Java tetapi menyediakan implementasinya dalam kode bahasa lain seperti C?
Jwb: Ya, kami dapat melakukan ini dengan menggunakan metode asli. Dalam kasus pengembangan berbasis metode asli, kami mendefinisikan metode statis publik di kelas Java kami tanpa implementasinya dan kemudian implementasi dilakukan dalam bahasa lain seperti C secara terpisah.
P74. Bagaimana destruktor didefinisikan di Java?
Jwb: Di Java, tidak ada destruktor yang ditentukan di kelas karena tidak perlu melakukannya. Java memiliki mekanisme pengumpulan sampahnya sendiri yang melakukan tugas secara otomatis dengan memusnahkan objek saat tidak lagi direferensikan.
P75. Bisakah variabel menjadi lokal dan statis pada saat bersamaan?
Jwb: Tidak ada variabel yang tidak bisa statis serta lokal pada saat yang bersamaan. Mendefinisikan variabel lokal sebagai statis memberikan kesalahan kompilasi.
T76. Bisakah kita memiliki metode statis dalam Antarmuka?
Jwb: Metode statis tidak dapat diganti di kelas mana pun sementara metode apa pun dalam antarmuka secara default abstrak dan seharusnya diterapkan di kelas yang sedang mengimplementasikan antarmuka. Jadi tidak masuk akal untuk memiliki metode statis dalam antarmuka di Java.
P77. Di kelas yang menerapkan antarmuka, dapatkah kita mengubah nilai variabel apa pun yang ditentukan dalam antarmuka?
Jawab: Tidak, kami tidak dapat mengubah nilai variabel apa pun dari antarmuka di kelas penerapan karena semua variabel yang ditentukan dalam antarmuka secara default adalah publik, variabel statis dan Final dan final seperti konstanta yang tidak dapat diubah nanti.
T78. Benarkah untuk mengatakan bahwa karena fitur pengumpulan sampah di Java, program java tidak pernah kehabisan memori?
Jawab: Meskipun pengumpulan sampah otomatis disediakan oleh Java, itu tidak memastikan bahwa program Java tidak akan kehabisan memori karena ada kemungkinan pembuatan objek Java dilakukan lebih cepat dibandingkan dengan pengumpulan sampah yang mengakibatkan mengisi semua sumber daya memori yang tersedia.
Jadi, pengumpulan sampah membantu mengurangi kemungkinan program keluar dari memori tetapi tidak memastikannya.
P79. Bisakah kita memiliki tipe pengembalian lain selain void untuk metode utama?
Jawab: Tidak, metode utama kelas Java hanya dapat memiliki tipe pengembalian kosong agar program berhasil dieksekusi.
Meskipun demikian, jika Anda benar-benar harus mengembalikan nilai ke pada penyelesaian metode utama, Anda dapat menggunakan System.exit (status int)
P80. Saya ingin menjangkau kembali dan menggunakan objek setelah sampah dikumpulkan. Bagaimana mungkin?
Jwb: Setelah dimusnahkan oleh pengumpul sampah, objek tidak lagi ada di heap dan tidak dapat diakses lagi. Tidak ada cara untuk merujuknya lagi.
P81. Dalam pemrograman thread Java, metode mana yang harus diimplementasikan untuk semua thread?
Jawab: Run () adalah metode antarmuka Runnable yang harus diterapkan oleh semua utas.
T82. Saya ingin mengontrol koneksi database dalam program saya dan ingin hanya satu thread yang dapat membuat koneksi database pada satu waktu. Bagaimana cara menerapkan logika ini?
Jawab: Ini dapat diimplementasikan dengan menggunakan konsep sinkronisasi. Kode terkait database dapat ditempatkan dalam metode yang memiliki kata kunci tersinkronisasi sehingga hanya satu thread yang dapat mengaksesnya pada satu waktu.
P83. Bagaimana pengecualian dilemparkan secara manual oleh programmer?
Jwb: Untuk melempar pengecualian dalam blok kode secara manual, kata kunci lempar digunakan. Kemudian pengecualian ini ditangkap dan ditangani di blok catch.
public void topMethod() {try {excMethod();} catch (ManualException e) {}}public void excMethod {String name = null;if (name == null) {throw (new ManualException("Exception thrown manually ");}}
P84. Saya ingin kelas saya dikembangkan sedemikian rupa sehingga tidak ada kelas lain (bahkan kelas turunan) yang dapat membuat objeknya. Bagaimana saya bisa melakukannya?
Jwb: Jika kita mendeklarasikan konstruktor kelas sebagai privat, ia tidak akan dapat diakses oleh kelas lain dan karenanya, tidak ada kelas lain yang dapat membuat instance dan pembentukan objeknya akan dibatasi hanya untuk dirinya sendiri.
T85. Bagaimana objek disimpan di Java?
Jawab: Di java, setiap objek saat dibuat mendapat ruang memori dari heap. Saat sebuah objek dimusnahkan oleh pengumpul sampah, ruang yang dialokasikan untuknya dari heap dialokasikan kembali ke heap dan menjadi tersedia untuk objek baru apa pun.
T86. Bagaimana kita bisa mengetahui ukuran sebenarnya dari sebuah objek di heap?
Jawab: Di java, tidak ada cara untuk mengetahui ukuran pasti dari sebuah objek di heap.
P87. Manakah dari kelas berikut yang memiliki lebih banyak memori yang dialokasikan?
Kelas A: Tiga metode, empat variabel, tanpa objek
Kelas B: Lima metode, tiga variabel, tanpa objek
Jawab: Memori tidak dialokasikan sebelum membuat objek. Karena untuk kedua kelas, tidak ada objek yang dibuat sehingga tidak ada memori yang dialokasikan di heap untuk kelas apa pun.
Q88. Apa yang terjadi jika pengecualian tidak ditangani dalam program?
Jwb: Jika pengecualian tidak ditangani dalam program yang menggunakan blok coba tangkap, program akan dibatalkan dan tidak ada pernyataan yang dieksekusi setelah pernyataan yang menyebabkan pelemparan pengecualian.
P89. Saya memiliki beberapa konstruktor yang ditentukan dalam satu kelas. Apakah mungkin untuk memanggil konstruktor dari tubuh konstruktor lain?
Jawab: Jika sebuah kelas memiliki beberapa konstruktor, dimungkinkan untuk memanggil satu konstruktor dari badan konstruktor lain menggunakan this () .
P90. Apa yang dimaksud dengan kelas anonim?
Jawab: Kelas anonim adalah kelas yang ditentukan tanpa nama dalam satu baris kode menggunakan kata kunci baru.
Misalnya, dalam kode di bawah ini kami telah menetapkan kelas anonim dalam satu baris kode:
public java.util.Enumeration testMethod(){return new java.util.Enumeration(){@Overridepublic boolean hasMoreElements(){// TODO Auto-generated method stubreturn false;}@Overridepublic Object nextElement(){// TODO Auto-generated method stubreturn null;}}
P91. Apakah ada cara untuk meningkatkan ukuran array setelah deklarasinya?
Jawab: Array bersifat statis dan setelah kami menentukan ukurannya, kami tidak dapat mengubahnya. Jika kita ingin menggunakan koleksi seperti itu di mana kita mungkin memerlukan perubahan ukuran (tidak ada item), kita harus lebih memilih vektor daripada array.
P92. Jika sebuah aplikasi memiliki banyak kelas di dalamnya, apakah boleh memiliki metode utama di lebih dari satu kelas?
Jawab: Jika ada metode utama di lebih dari satu kelas dalam aplikasi java, itu tidak akan menimbulkan masalah karena titik masuk untuk aplikasi apa pun akan menjadi kelas tertentu dan kode akan dimulai dari metode utama kelas tertentu itu saja.
P93. Saya ingin menyimpan data objek untuk digunakan nanti. Apa pendekatan terbaik untuk melakukannya?
Jwb: Cara terbaik untuk menyimpan data untuk penggunaan di masa mendatang adalah dengan menggunakan konsep serialisasi.
P94. Apa itu kelas Lokal di Jawa?
Jwb: Di Java, jika kita mendefinisikan kelas baru di dalam blok tertentu, itu disebut kelas lokal. Kelas seperti itu memiliki cakupan lokal dan tidak dapat digunakan di luar blok yang ditentukan.
P95. String dan StringBuffer keduanya mewakili objek String. Bisakah kita membandingkan String dan StringBuffer di Java?
Jwb: Meskipun String dan StringBuffer keduanya mewakili objek String, kami tidak dapat membandingkannya satu sama lain dan jika kami mencoba membandingkannya, kami mendapatkan error.
P96. API mana yang disediakan oleh Java untuk operasi pada kumpulan objek?
Jwb: Java menyediakan Collection API yang menyediakan banyak metode berguna yang dapat diterapkan pada sekumpulan objek. Beberapa kelas penting yang disediakan oleh Collection API termasuk ArrayList, HashMap, TreeSet, dan TreeMap.
P97. Bisakah kita mentransmisikan tipe lain ke Tipe Boolean dengan tipe casting?
Jwb: Tidak, kami tidak dapat mentransmisikan tipe primitif lainnya ke tipe data Boolean atau mentransmisikan tipe data Boolean ke tipe data primitif lainnya.
P98. Bisakah kita menggunakan tipe pengembalian yang berbeda untuk metode saat diganti?
Jwb: Persyaratan dasar metode penggantian di Java adalah bahwa metode yang diganti harus memiliki nama dan parameter yang sama. Namun metode dapat diganti dengan tipe pengembalian yang berbeda selama tipe pengembalian baru memperluas aslinya.
Misalnya, metode mengembalikan tipe referensi.
Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}
P99. Apa kelas dasar dari semua kelas pengecualian?
Jawab: Di Java, Java.lang.Throwable adalah kelas super dari semua kelas pengecualian dan semua kelas pengecualian diturunkan dari kelas dasar ini.
Q100. Apa urutan panggilan konstruktor dalam warisan?
Jawab: Dalam kasus pewarisan, ketika objek baru dari kelas turunan dibuat, pertama konstruktor kelas super dipanggil dan kemudian konstruktor dari kelas turunan dipanggil.
Siapkan Wawancara Kerja Anda !!! Pergi melalui Tutorial Java untuk lebih siap.
Pertanyaan wawancara Java terperinci ini akan membantu Anda menghilangkan keraguan tentang pertanyaan wawancara Java dan juga akan membantu Anda memecahkan wawancara.