130+ Pertanyaan & Jawaban Wawancara Java Teratas 2022
Diterbitkan: 2021-01-01Pertanyaan & Jawaban Wawancara Java
Pada artikel ini, kami telah menyusun Pertanyaan Wawancara Java yang paling sering ditanyakan. Pertanyaan-pertanyaan ini akan memberi Anda kenalan dengan jenis pertanyaan yang mungkin ditanyakan pewawancara selama Anda wawancara untuk Pemrograman Java
Sebagai Fresher, Anda baru saja menghadiri wawancara atau berencana untuk segera menghadirinya. Pencari kerja Entry Level yang ingin mengembangkan karir Anda dalam pemrograman perangkat lunak, Anda mungkin gugup tentang wawancara yang akan datang . Kita semua memiliki saat-saat panik di mana kita merasa kosong dan bahkan mungkin lupa apa itu utas. Kami akan menyederhanakannya untuk Anda, yang perlu Anda lakukan hanyalah menarik napas dalam-dalam dan memeriksa pertanyaan yang paling mungkin diajukan.
Panik memang tidak bisa dihindari, tetapi Anda pasti bisa mempersiapkan diri agar saat melangkah di ruang wawancara itu. Anda percaya diri dan tahu bahwa Anda dapat menangani apa pun yang mungkin dilontarkan pewawancara kepada Anda.
Pelajari program rekayasa perangkat lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.
Berikut adalah daftar 24 Pertanyaan Wawancara Java lengkap dengan Jawaban (terbaru 2022) yang akan membantu Anda mendapatkan kepercayaan diri itu, dan memastikan Anda lulus wawancara.
1. Terdiri dari apakah JVM?
JVM, kependekan dari Java Virtual Machine diperlukan oleh sistem apapun untuk menjalankan program Java. Arsitekturnya pada dasarnya terdiri dari:
● Classloader: Ini adalah subsistem JVM dan fungsi utamanya adalah memuat file kelas setiap kali program Java dijalankan.
● Heap: ini adalah data runtime yang digunakan untuk mengalokasikan objek.
● Area kelas: menyimpan level kelas dari setiap file kelas seperti variabel statis, metadata, dan kumpulan run konstan.
● Stack: digunakan untuk menyimpan variabel sementara.
● Register: register berisi alamat instruksi JVM yang sedang dieksekusi
● Mesin eksekusi: EE terdiri dari prosesor virtual, juru bahasa yang mengeksekusi instruksi setelah membaca bytecode, dan kompiler JIT yang meningkatkan kinerja saat kecepatan eksekusi lambat.
● Java Native Interface: berfungsi sebagai media komunikasi untuk berinteraksi dengan aplikasi lain yang dikembangkan dalam C, C++, dll.

2. Apa itu pemrograman berorientasi objek? Apakah Java merupakan bahasa berorientasi objek?
Pada dasarnya, pemrograman berorientasi objek adalah paradigma pemrograman yang bekerja pada konsep objek. Sederhananya, objek adalah wadah – berisi data dalam bentuk bidang dan kode dalam bentuk prosedur. Mengikuti logika itu, bahasa berorientasi objek adalah bahasa yang bekerja pada objek dan prosedur.
Karena Java menggunakan 8 tipe data primitif — boolean, byte, char, int, float, long, short, double — yang bukan objek, Java tidak dapat dianggap sebagai bahasa berorientasi objek 100%.
3. Apa yang Anda pahami tentang Agregasi dalam konteks Java?
Agregasi adalah bentuk asosiasi di mana setiap objek diberikan siklus hidupnya sendiri. Tapi, ada kepemilikan dalam hal ini, dan objek anak tidak bisa menjadi milik objek induk lainnya dengan cara apa pun.
4. Beri nama superclass di Java.
Jawa.lang. Semua non-primitif yang berbeda diwarisi secara langsung atau tidak langsung dari kelas ini.
5. Jelaskan perbedaan antara 'finally' dan 'finalize' di Java?
Digunakan dengan blok try-catch, blok 'finally' digunakan untuk memastikan bahwa bagian kode tertentu selalu dieksekusi, bahkan jika eksekusi dilemparkan oleh blok try-catch.
Sebaliknya, finalize() adalah metode khusus di kelas objek. Biasanya ditimpa untuk melepaskan sumber daya sistem ketika nilai sampah dikumpulkan dari objek.
6. Apa yang dimaksud dengan kelas dalam anonim? Apa bedanya dengan kelas dalam?
Setiap kelas dalam lokal yang tidak memiliki nama dikenal sebagai kelas dalam anonim. Karena tidak memiliki nama, tidak mungkin untuk membuat konstruktornya. Itu selalu baik memperluas kelas atau mengimplementasikan antarmuka, dan didefinisikan dan dipakai dalam satu pernyataan.
Kelas bersarang non-statis disebut kelas dalam. Kelas dalam dikaitkan dengan objek kelas dan mereka dapat mengakses semua metode dan variabel dari kelas luar.
7. Apa itu kelas sistem?
Ini adalah kelas inti di Jawa. Karena kelas bersifat final, kita tidak dapat mengesampingkan perilakunya melalui pewarisan. Kami juga tidak dapat membuat instance kelas ini karena tidak menyediakan konstruktor publik. Oleh karena itu, semua metodenya statis.
8. Bagaimana cara membuat utas daemon di Jawa?
Kami menggunakan kelas setDaemon(true) untuk membuat utas ini. Kami memanggil metode ini sebelum metode start(), jika tidak, kami mendapatkan IllegalThreadStateException.
9. Apakah Java mendukung variabel global? Mengapa/Mengapa tidak?
Tidak, Java tidak mendukung variabel global. Ini terutama karena dua alasan:
● Mereka membuat tabrakan di namespace.
● Mereka merusak transparansi referensial.
10. Bagaimana objek RMI dikembangkan?
Langkah-langkah berikut dapat diambil untuk mengembangkan objek RMI:
● Tentukan antarmuka
● Menerapkan antarmuka
● Kompilasi antarmuka dan implementasinya dengan kompiler java
● Implementasi server kompilasi dengan kompiler RMI
● Jalankan registri RMI
● Jalankan aplikasi
11. Jelaskan perbedaan antara time slicing dan penjadwalan preemptive?
Dalam kasus time slicing, tugas dijalankan untuk jangka waktu tertentu – juga dikenal sebagai slice. Setelah itu, ia memasuki antrian siap — kumpulan tugas 'siap'. Penjadwal kemudian memilih tugas berikutnya yang akan dieksekusi berdasarkan prioritas dan faktor lainnya.
Sedangkan di bawah penjadwalan preemptive, tugas dengan prioritas tertinggi dijalankan baik sampai memasuki keadaan mati atau peringatan atau jika tugas prioritas lain yang lebih tinggi datang.
12. Benang pengumpul sampah adalah jenis benang apa?
Ini adalah utas daemon.
13. Apa siklus hidup thread di Jawa?
Setiap utas di Java melewati tahapan berikut dalam siklus hidupnya:
● Baru
● Dapat dijalankan
● Berlari
● Tidak dapat dijalankan (diblokir)
● Dihentikan
14. Sebutkan metode yang digunakan selama proses deserialisasi dan serialisasi.
ObjectInputStream.readObject
Membaca file dan deserialize objek.
ObjectOuputStream.writeObject
Buat serial objek dan tulis objek serial ke file.
15. Apa itu variabel volatil dan apa tujuannya?
Variabel volatil adalah variabel yang selalu dibaca dari memori utama, dan bukan dari memori cache thread. Ini biasanya digunakan selama sinkronisasi.
16. Apa itu kelas pembungkus di Jawa?
Semua tipe data primitif di Java memiliki kelas yang terkait dengannya – yang dikenal sebagai kelas pembungkus. Mereka dikenal sebagai kelas pembungkus karena mereka 'membungkus' tipe data primitif ke dalam objek untuk kelas tersebut. Singkatnya, mereka mengubah primitif Java menjadi objek.
17. Bagaimana kita bisa membuat kelas tunggal?
Dengan menjadikan konstruktornya pribadi.
18. Apa metode penting dari Exception Class di Java?
● string getMessage()
● string toString()
● batal printStackTrace()
● Throwable get Cause() yang disinkronkan
● StackTraceElement publik[] getStackTrace()
19. Bagaimana cara membuat thread di Java?
Kita dapat mengikuti salah satu dari dua cara untuk membuat utas di Jawa:
● Dengan memperluas Kelas Utas
Kerugian dari metode ini adalah bahwa kita tidak dapat memperluas kelas lain karena kelas utas telah diperluas.
● Dengan mengimplementasikan antarmuka Runnable
20. Jelaskan perbedaan antara metode get() dan load().
Metode get() dan load() memiliki perbedaan berikut:
● get() mengembalikan null jika objek tidak ditemukan, sedangkan load() menampilkan pengecualian ObjectNotFound.
● get() selalu mengembalikan objek nyata, sedangkan load() mengembalikan objek proxy.
● metode get() selalu mengenai database sedangkan load() tidak.
● get() harus digunakan jika Anda tidak yakin tentang keberadaan sebuah instance, sedangkan load() harus digunakan jika Anda yakin bahwa instance itu ada.
21. Berapa nilai default dari variabel lokal?
Mereka tidak diinisialisasi ke nilai default apa pun. Baik primitif atau referensi objek.
22. Apa itu Singleton di Jawa?
Ini adalah kelas dengan satu contoh di seluruh aplikasi Java. Sebagai contoh java.lang.Runtime adalah kelas Singleton. Tujuan utama Singleton adalah untuk mengontrol pembuatan objek dengan menjaga konstruktor pribadi.
23. Apa itu metode statis?
Metode statis dapat dipanggil tanpa perlu membuat instance kelas. Metode statis milik kelas daripada objek kelas. Metode statis dapat mengakses anggota data statis dan dapat mengubah nilainya.
24. Apa pengecualiannya?
Pengecualian Kondisi yang tidak biasa selama program. Ini mungkin karena logika yang salah ditulis oleh input pengguna atau programmer yang salah.
25. Secara sederhana, bagaimana Anda mendefinisikan Java?
Java adalah portal tingkat tinggi, platform-independen, berorientasi objek, dan menawarkan dukungan dengan kinerja tinggi untuk membangun program, aplikasi, dan situs web yang canggih. Java adalah bahasa pemrograman tujuan umum yang memberdayakan pengembang untuk membangun aplikasi fungsionalitas yang kaya dengan lingkungan menulis sekali dijalankan di mana saja (WORA). James Arthur Gosling, seorang ilmuwan komputer dari Kanada, mengembangkan Java pada tahun 1991 dan dikenal sebagai 'Dr Java'. Saat ini, Java telah menjadi fondasi penting bagi industri TI modern.
26 . Apa itu Pool String Java?
String Pool di Java adalah tempat berbeda yang memiliki kumpulan string yang disimpan melalui Java Heap Memory. Di sini, String mewakili kelas khusus di Java, dan objek string dapat dibuat menggunakan operator baru atau menggunakan nilai dalam tanda kutip ganda.
String tidak dapat diubah di Jawa, dengan demikian, membuat kelayakan kumpulan String dan kemudian implementasi lebih lanjut melalui konsep interning String.
27. Apa yang dimaksud dengan kelas koleksi di Jawa? Sebutkan metode dan antarmukanya?
Kelas Koleksi Java adalah kelas khusus, yang secara eksklusif digunakan dengan metode statis yang bekerja secara khusus pada koleksi kembali. Java Collection secara default mewarisi kelas dan memiliki dua fitur penting sebagai:
- Mereka mendukung dan beroperasi dengan algoritme polimorfik yang mengembalikan koleksi baru untuk setiap koleksi tertentu.
- Metode di Koleksi Java melempar NullPointerException jika objek atau koleksi kelas memiliki nilai Null.
Ini direpresentasikan dan dideklarasikan sebagai Java.util.Collectionclass.
Ada lebih dari 60 metode, pengubah, dan jenis kelas Koleksi Java. Berikut adalah daftar metode paling penting di Java Collection Class:
S. Tidak. | Pengubah, Metode, dan Jenis | Keterangan |
1. | statis <T> boolean addAll() | Metode ini memungkinkan penambahan elemen tertentu ke koleksi tertentu. |
2. | statis <T> Antrian <T> asLifoQueue() | Metode ini memungkinkan daftar koleksi sebagai Last-in-first-out (LIFO) dalam tampilan. |
3. | statis <T> int binarySearch() | Metode ini memungkinkan pencarian objek tertentu dan kemudian mengembalikannya dalam daftar yang diurutkan. |
4. | statis <E> Koleksi<E> | Metode ini mengembalikan tampilan dinamis dari koleksi tertentu. |
5. | statis <E> Daftar <E> | Metode ini memberikan pengembalian tampilan typesafe dinamis dari daftar tertentu. |
Berikut adalah beberapa contoh untuk Java Collection:
Koleksi Java min() Contoh:
1 2 3 4 5 6 7 8 9 10 11 12 | impor java.util.* ; Contoh Koleksi kelas publik { public static void main ( String a []){ List < Integer > list = new ArrayList < Integer >(); daftar . tambahkan ( 90 ); daftar . tambahkan ( 80 ); daftar . tambahkan ( 76 ); daftar . tambahkan ( 58 ); daftar . tambahkan ( 12 ); Sistem . keluar . println ( "Nilai Minimum elemen dalam koleksi: " + Koleksi . min ( daftar )); } } |
Outputnya akan menjadi:
Elemen Nilai Minimum dalam koleksi: 12 |
Java Collection max() Contoh:
1 2 3 4 5 6 7 8 9 10 11 12 | impor java.util.* ; Contoh Koleksi kelas publik { public static void main ( String a []){ List < Integer > list = new ArrayList < Integer >(); daftar . tambahkan ( 90 ); daftar . tambahkan ( 80 ); daftar . tambahkan ( 76 ); daftar . tambahkan ( 58 ); daftar . tambahkan ( 12 ); Sistem . keluar . println ( "Nilai Maksimum elemen dalam koleksi: " + Koleksi .max ( daftar )); } } |
Outputnya akan menjadi:
Elemen Nilai Maksimum dalam koleksi: 90 |
28 . Apa itu servlet?
Servlet adalah komponen perangkat lunak Java yang menambahkan lebih banyak kemampuan ke server Java melalui teknologi, API, antarmuka, kelas, atau penyebaran web apa pun. Servlet berjalan secara khusus pada server aplikasi web yang didukung Java dan mampu menangani permintaan kompleks dari server web. Servlet menambahkan manfaat kinerja yang lebih tinggi, ketahanan, skalabilitas, portabilitas, dan memastikan keamanan untuk aplikasi Java.
Proses atau Eksekusi Servlet:
- Ini dimulai ketika pengguna mengirim permintaan dari browser web.
- Server web menerima dan kemudian meneruskan permintaan ini ke servlet tertentu.
- Servlet kemudian memproses permintaan ini untuk mendapatkan respons spesifik dengan output.
- Servlet kemudian mengirimkan respons ini kembali ke server web.
- Kemudian server web mendapatkan informasi yang ditampilkan browser di layar.
Java Servlet hadir dengan beberapa kelas dan antarmuka seperti GenericServlet, ServletRequest, Servlet API, HttpServlet, ServeResponse, dll.
29. Apa itu pengirim permintaan?
Di Servlet, RequestDispatcher bertindak sebagai antarmuka untuk mendefinisikan objek untuk menerima permintaan dari klien di satu sisi dan kemudian mengirimkannya ke sumber daya tertentu di sisi lain (yang mungkin berupa servlet, HTML, JSP). RequestDispatcher ini memiliki dua metode secara umum:
void forward (permintaan ServletRequest, respons ServletResponse) | Itu memungkinkan dan meneruskan permintaan dari servlet apa pun ke sumber daya server dalam bentuk Servlet, file HTML, atau file JSP. |
void termasuk (permintaan ServletRequest, respons ServletResponse) | Itu memiliki konten untuk sumber daya tertentu dalam bentuk respons seperti file HTML, halaman JSP, atau servlet. |
30. Apa siklus hidup servlet?
Servlet merupakan komponen perangkat lunak Java yang memiliki fungsi utama untuk terlebih dahulu menerima permintaan, kemudian memproses permintaan, dan memberikan respons kepada pengguna dalam halaman HTML. Di sini Servlet Container mengelola siklus hidup servlet. Berikut adalah tahapan utamanya:
- Memuat Servlet.
- Kemudian inisialisasi Servlet.
- Menangani Permintaan (memanggil metode layanan).
- Kemudian menghancurkan Servlet.
Berikut adalah diagram cepat yang menunjukkan siklus hidup Java Servlet:
Sumber
- Memuat Servlet
Siklus hidup untuk Servlet dimulai dengan tahap pemuatan dalam wadah Servlet. Servlet dimuat dalam salah satu dari dua cara dengan:
- Mengatur servlet sebagai nilai integral positif atau nol.
- Kedua, proses ini mungkin mengalami penundaan, karena wadah memilih servlet yang tepat untuk menangani permintaan.
Sekarang kontainer pertama memuat kelas Servlet dan kemudian membangun sebuah instance melalui konstruktor tanpa argumen.
- Inisialisasi Servlet
Langkah selanjutnya adalah menggunakan metode Servlet.init(ServletConfig) untuk menginisialisasi Servlet misalnya sumber data JDBC.
- Menangani Permintaan (Metode Layanan Pemanggilan)
Di sini Servlet menerima permintaan klien dan melakukan operasi yang diperlukan menggunakan metode service().
- Menghancurkan Servlet
Sekarang wadah Servlet menghancurkan servlet dengan melakukan dan menyelesaikan tugas tertentu dan memanggil metode destroy() dalam instance.
31. Apa saja metode berbeda dari manajemen sesi di servlet?
Sesi melacak aktivitas pengguna setelah mereka masuk ke situs. Manajemen sesi menyediakan mekanisme untuk mendapatkan informasi untuk setiap pengguna independen. Berikut adalah empat metode berbeda untuk manajemen sesi di servlet:
- Sesi Http
- Kue
- Penulisan Ulang URL
- Bidang Tersembunyi HTML
32. Apa itu Driver JDBC?
Java Database Connectivity (JDBC) di sini bertindak sebagai komponen perangkat lunak yang memungkinkan aplikasi Java untuk berkomunikasi dengan database.
Driver JDBC memiliki empat tipe berikut di lingkungan:
- Sopir jembatan JDBC-ODBC
- Driver Protokol Jaringan (driver Middleware)
- Driver Protokol Database (driver sepenuhnya Java)
- Driver API asli
33. Apakah antarmuka Koneksi JDBC itu?
Koneksi menentukan sesi antara database dan aplikasi Java. Antarmuka Koneksi JDBC adalah bagian dari paket java.sql saja dan menyediakan informasi sesi untuk database tertentu. Ini mewakili beberapa pernyataan SQL untuk mengeksekusi dan menghasilkan dalam konteks antarmuka koneksi tunggal. Berikut adalah metode utama untuk antarmuka Connections:
- createStatement() : Untuk membuat objek pernyataan tertentu untuk menambahkan pernyataan SQL ke database tertentu.
- setAutoCommit(status boolean) : Untuk menentukan koneksi mode komit ke direktif false atau true.
- commit() : Itu membuat semua modifikasi dari komit terakhir dan selanjutnya merilis database apa pun yang saat ini dipegang oleh objek Connection tertentu.
- rollback() : Itu membatalkan atau mengembalikan semua perubahan yang dilakukan di masa lalu atau transaksi saat ini dan juga melepaskan database yang dipegang saat ini di objek koneksi.
- close() : Itu mengakhiri atau menutup koneksi saat ini dan juga melepaskan atau menghapus sumber daya JDBC secara instan.
34. Sebutkan modul-modul yang berbeda dari kerangka Spring?
Ada beberapa modul dalam kerangka Spring:
- modul web
- Modul penyangga
- Modul servlet
- Modul Wadah Inti
- Pemrograman Berorientasi Aspek (AOP)
- Modul Konteks Aplikasi
- Modul kerangka kerja MVC
- Abstraksi JDBC dan modul DAO
- Modul OXM
- Modul Bahasa Ekspresi
- Modul transaksi
- Modul Java Messaging Service (JMS)
- Modul integrasi ORM
Modul-modul ini hadir dalam kelompok:
Sumber
35. Jelaskan Bean in Spring dan buat daftar cakupan yang berbeda dari Spring bean.
Kacang adalah salah satu konsep dasar kerangka Spring dalam mengelola struktur secara efisien. Dalam definisi sederhana, Spring Bean mewakili wadah IoC yang mengelola objek yang membentuk tulang punggung aplikasi.
Lingkup Kacang Musim Semi:
Cakupan memainkan peran penting dalam penggunaan kacang musim semi yang efektif dalam aplikasi. Lingkup membantu kita memahami siklus hidup Spring Bean, dan mereka memiliki tipe berikut .
S. Tidak. | Lingkup dan Deskripsi |
1. | Singleton – Secara default, cakupan Spring bean memiliki cakupan tunggal yang hanya mewakili satu instance untuk wadah Spring IOC. Objek yang sama ini dibagikan untuk setiap permintaan. |
2. | Prototipe – Dalam hal ini, instance baru akan dipanggil dan dibuat untuk setiap definisi kacang tunggal, setiap kali permintaan dibuat untuk kacang tertentu. |
3. | Permintaan – Dalam cakupan ini, satu kacang akan dipanggil dan dibuat untuk setiap permintaan HTTP untuk kacang tertentu itu. |
4. | Sesi – Cakupan ini mendefinisikan penggunaan kacang tunggal untuk siklus hidup dalam sesi HTTP global tertentu. |
5. | Sesi global – Cakupan ini memungkinkan satu kacang untuk siklus hidup tertentu untuk diterapkan dalam sesi HTTP global. |
Catatan: Tiga cakupan terakhir hanya berlaku di Spring ApplicationContext web-aware.
Harus Dibaca: Mengapa Java begitu populer di kalangan Pengembang
36. Jelaskan peran DispatcherServlet dan ContextLoaderListener.
Saat mengonfigurasi konfigurasi Spring MVC berbasis XML dalam file web.xml, dua deklarasi DispatcherServlet dan ContextLoaderListener memainkan peran penting dalam melengkapi tujuan kerangka kerja.
- DispatcherServlet –
DispatcherServlet memiliki tujuan utama untuk mengelola permintaan web yang masuk untuk pola URI terkonfigurasi yang cocok. DispatcherServlet bertindak sebagai pengontrol depan untuk inti aplikasi Spring MVC dan secara khusus memuat file konfigurasi dan kemudian menginisialisasi kacang yang tepat yang ada dalam file itu. Dan ketika anotasi diaktifkan, ia juga dapat memeriksa dan memindai konfigurasi dan paket untuk semua yang dianotasi dengan @Repository, @Component, @Service, atau @Controller.
- ContextLoaderListener –
ContextLoaderListener di sini bertindak sebagai pendengar permintaan untuk memulai dan mematikan WebApplicationContext root. Jadi, ini membuat dan membagikan konteks aplikasi root dengan konteks anak oleh konteks DispatcherServlet. Aplikasi hanya dapat menggunakan satu entri untuk ContextLoaderListener di web.xml.
37. Jelaskan arsitektur Hibernate.
Hibernate mendefinisikan arsitektur berlapis yang memberdayakan pengguna untuk mengoperasikan dan melakukan tanpa mengetahui API yang mendasarinya, yaitu, Hibernate bertindak sebagai kerangka kerja untuk membangun dan mengembangkan logika ketekunan yang independen dari perangkat lunak Database.
Arsitektur hibernate memiliki empat lapisan utama dengan:
- Lapisan aplikasi Java
- Lapisan basis data
- Lapisan API backend
- Lapisan kerangka kerja hibernasi
Elemen Arsitektur Hibernasi
Ada beberapa aspek dan ruang lingkup untuk arsitektur Hibernate. Untuk mempelajari lebih lanjut tentang mereka, Anda harus tahu tentang elemen arsitektur Hibernate.
- SessionFactory: Sessionfactory menyediakan metode untuk membuat objek sesi yang ada dalam paket org.hiberate saja. Ini bersifat thread-safe, tidak dapat diubah, dan menyimpan serta mempertahankan cache data tingkat kedua.
- Sesi: Objek sesi menyediakan antarmuka untuk perangkat lunak Koneksi dan Database melalui kerangka kerja hibernasi.
- Transaksi: Antarmuka yang membantu manajemen transaksi dan memungkinkan perubahan dalam database.
- ConnectiveProvider: Bagian dari koneksi JDBC, memisahkan aplikasi utama dari DataSource atau DriverManager.
- TransactionFactory: Mewakili pabrik transaksi.
38. Apa yang dimaksud dengan hierarki pengecualian di Jawa?
Pengecualian mendefinisikan peristiwa yang tidak diinginkan yang muncul dengan sendirinya selama menjalankan atau eksekusi program. Pengecualian mengganggu aliran reguler program.
Hierarki Pengecualian adalah bagian dari kelas java.lang.Exception dan hanya berada di bawah kelas Throwable utama. Subclass lain ' Error ' juga mewakili kelas Throwable di Java. Meskipun Kesalahan adalah kondisi yang tidak biasa jika terjadi kegagalan, tetap saja tidak ditangani atau dihapus dengan program Java.
Ada dua subkelas utama untuk hierarki luar biasa di Java dengan kelas RuntimeException dan Kelas IOCException.
39. Apa itu sinkronisasi?
Sinkronisasi di Java mendefinisikan kemampuan untuk mengelola dan mengontrol akses beberapa utas ke sumber daya tertentu. Sehingga, satu utas dapat mengakses sumber daya tertentu pada saat ini. Di sini, Java memungkinkan pengembangan utas dan kemudian menyinkronkan tugas melalui blok sinkronisasi.
Blok yang disinkronkan ini hanya mengizinkan satu eksekusi utas untuk waktu tertentu dan memblokir utas lainnya hingga utas saat ini keluar di blok. Di sini konsep monitor sangat penting dalam mengimplementasikan sinkronisasi di Jawa. Setelah utas masuk dalam fase kunci, itu disebut memasuki monitor. Jadi, mengunci semua utas lainnya kecuali utas pertama telah keluar dari monitor.
40. Apa saja fitur yang menjadikan Java sebagai salah satu bahasa pemrograman terbaik?
Berikut adalah fitur teratas yang membuat Java untuk memulai kurva belajar Anda di dunia pemrograman:
- Kesederhanaan: Java cukup sederhana untuk dipelajari dan ditulis. Sintaks Java ada di C++ yang memungkinkan pengembang untuk menulis program dengan mulus.
- OOPS: Java didasarkan pada sistem pemrograman berorientasi objek (OOPS), dengan demikian, memberdayakan untuk membangun kode dalam berbagai jenis objek dengan data dan perilaku yang berbeda.
- Dinamis: Java adalah bahasa dinamis lengkap yang mendukung pemuatan kelas dinamis kapan pun dan di mana pun diperlukan. Dan juga memiliki dukungan komprehensif untuk bahasa kode asli seperti C, C++, dll.
- Platform Independen: Java juga mendukung bahasa pemrograman eksklusif dan platform-independen, sehingga memungkinkan pengembang untuk menjalankan program mereka pada platform mereka saja.
- Portabilitas: Java memiliki pendekatan sekali menulis di mana saja yang memungkinkan kode untuk berjalan di platform apa pun.
- Keamanan: Mengikuti konsep ByteCode, penanganan pengecualian, dan tidak menggunakan pointer eksplisit apa pun membuat Java menjadi lingkungan yang sangat aman.
Java juga bersifat arsitek netral tanpa ketergantungan pada arsitektur apa pun. Manajemen memori yang kuat dan pengumpulan sampah otomatis menambah ketahanan pada lingkungannya.
41. Apa yang membuat Java memungkinkan kinerja tinggi?
Penggunaan kompiler Just in Time (JIT) dalam arsitekturnya menjadikan Java salah satu bahasa pemrograman berkinerja tinggi, karena mengubah instruksi menjadi bytecode.
42. Sebutkan Java IDE yang paling populer.
Ada banyak IDE yang tersedia di industri untuk Java. Berikut adalah lima IDE Java teratas yang dapat Anda gunakan untuk mulai mempelajari bahasa pemrograman ini hari ini:
- Gerhana
- Netbeans
- IntelliJ
- Pengembang J
- gerhanaku
43. Jelaskan perbedaan utama antara Java dan platform lain?
Dua perbedaan utama yang membuat Java menonjol dari platform lain adalah:
- Java pada dasarnya adalah platform berbasis perangkat lunak, sementara yang lain dapat berupa platform berbasis perangkat lunak atau perangkat keras.
- Java berjalan atau dijalankan pada platform perangkat keras apa pun, sedangkan yang lain memerlukan persyaratan perangkat keras tertentu.
44. Apa yang membuat Java bersifat 'tulis sekali dan jalankan di mana saja' (WORA)?
Nah, jawaban satu kata adalah Bytecode. Kompiler Java mengubah semua program Java menjadi Kode Byte tertentu yang bertindak sebagai bahasa perantara antara kode mesin dan kode sumber. ByteCode dapat berjalan di komputer manapun dan tidak memiliki ketergantungan platform.
45. Jelaskan jenis-jenis penentu akses yang digunakan di Java.
Dalam bahasa pemrograman Java, penentu akses mewakili ruang lingkup yang tepat untuk kelas, variabel, atau metode. Ada empat penentu akses utama:
- Variabel, metode, atau kelas yang ditentukan publik dapat diakses di semua metode atau kelas.
- Penentu akses yang dilindungi mendefinisikan ruang lingkup kelas, metode, dan variabel ke paket yang sama, dalam kelas yang sama, atau ke subkelas tertentu dari kelas tersebut.
- Lingkup Default ada untuk semua kelas, variabel, dan metode yang ada dengan akses ke paket saja.
- Lingkup Private menjaga akses kelas, variabel, dan metode hanya untuk kelas tertentu.
Baca: Proyek Java Swing
46. Jelaskan pengertian package dalam Java beserta kelebihannya.
Paket adalah mekanisme pengelompokan untuk jenis yang serupa (antarmuka, kelas, anotasi, dan enumerasi) yang memastikan perlindungan aset dan manajemen nama yang komprehensif.
Berikut adalah kelebihan paket di Java:
- Paket membantu kami mencegah konflik penamaan ketika kelas dengan nama yang sama ada di dua paket yang berbeda.
- Paket membantu dalam membuat kontrol akses secara sistematis.
- Bangun kelas tersembunyi untuk digunakan oleh paket.
- Membantu dalam menemukan kelas terkait untuk paket.
47. Bagaimana Anda mendefinisikan Konstruktor di Jawa?
Konstruktor adalah blok kode khusus yang menginisialisasi objek pada saat pembuatan. Meskipun memiliki kemiripan dengan metode instan, namun Konstruktor bukanlah metode, karena mereka tidak memiliki tipe pengembalian eksplisit. Jadi setiap kali sebuah objek dibuat dalam sistem, ada satu konstruktor yang dipanggil untuk dieksekusi. Jika tidak ada konstruktor yang ditentukan, maka kompiler menggunakan konstruktor default.
Berikut adalah presentasi sederhana dari Konstruktor di Jawa:
1 2 3 4 5 6 | kelas publik Kelasku { //Ini adalah konstruktornya Kelasku (){ } .. } |
48. Apa saja jenis konstruktor yang digunakan di Java?
Ada tiga jenis konstruktor yang digunakan di Java:
- Konstruktor Default: Ketika pengembang tidak menggunakan konstruktor, kompiler Java menambahkan konstruktor default yang lebih spesifik yang ada di file .class.
- Konstruktor Tanpa Argumen: Dalam hal ini, tidak ada argumen dalam konstruktor dan kompiler tidak menerima parameter apa pun, karena metode variabel instan diinisialisasi dengan nilai tetap tertentu.
- Konstruktor Berparameter: Dalam hal ini, satu atau lebih parameter ada dalam konstruktor yang ditulis di dalam tanda kurung elemen utama saja.
49. Apa perbedaan antara konstruktor dan metode?
Perbedaan utama dalam konstruktor dan metode adalah:
- Tujuan: Konstruktor bertujuan untuk menginisialisasi objek kelas sedangkan metode melakukan tugas tertentu pada eksekusi kode.
- Metode ini memiliki tipe pengembalian sementara konstruktor tidak.
- Di Metode, ada abstrak, statis, final, dan sinkronisasi sementara di konstruktor, Anda tidak bisa membuat prosedur khusus.
50. Jelaskan pengertian variabel Lokal dan Variabel Instance?
- Variabel lokal hadir dalam metode, dan ruang lingkup hanya ada di dalam metode.
- Variabel instan hadir dan didefinisikan di kelas hanya dengan cakupannya di seluruh kelas.
51. Jelaskan pengertian Class dalam Java?
Di Java, semua kode, variabel, dan metode didefinisikan di dalam kelas.
- Variabel mewakili atribut yang mendefinisikan keadaan kelas tertentu.
- Metode mewakili di mana logika bisnis mengambil efeknya. Metode termasuk satu set pernyataan dan instruksi untuk mencocokkan persyaratan.
Berikut adalah contoh sederhana untuk kelas di Java :
1 2 3 4 5 6 7 | penambahan kelas publik { // deklarasi nama kelas intx = 10 ; //deklarasi variabel int y = 10 ; public void add (){ //deklarasi metode int z = a + b ; } } |
52. Jelaskan pengertian Object di Jawa?
Objek didefinisikan sebagai turunan dari kelas hanya dengan status dan perilaku tertentu. Misalnya, seekor anjing dengan status nama, ras, dan warna tertentu sementara perilakunya termasuk menggonggong, mengibaskan ekor, dll. Jadi, kapan pun JVM membaca kata kunci new() maka instance yang sesuai akan dibuat. Sebuah objek perlu dideklarasikan terlebih dahulu, kemudian dipakai dan akhirnya diinisialisasi untuk melakukan lebih lanjut.
53. Tentukan nilai default untuk tipe data byte dalam bahasa Java.
Untuk tipe data Byte, nilai defaultnya adalah 0.
54. Mengapa tipe data byte lebih bermanfaat di Java?
Karena tipe data byte hampir empat kali lebih kecil dari integer, sehingga dapat menyimpan lebih banyak ruang untuk array besar.
55. Menjelaskan konsep OOP di Java.
OOPs, adalah konsep dasar dari bahasa pemrograman Java. Ini termasuk abstraksi, polimorfisme, pewarisan, dan enkapsulasi. Konsep Java OOP memberdayakan pengembang untuk membuat variabel, metode, dan komponen yang selanjutnya memungkinkan mereka untuk menggunakannya kembali dengan cara yang disesuaikan dengan tetap menjaga keamanan.
56. Jelaskan pengertian Warisan.
Di Jawa, Warisan adalah mekanisme khusus yang memungkinkan satu kelas untuk memperoleh properti (dengan bidang dan metode) dari kelas lain. Warisan adalah salah satu konsep dasar Java OOP.
Warisan memungkinkan untuk membangun kelas baru, menambahkan lebih banyak bidang dan metode pada kelas yang ada untuk digunakan kembali dengan cara apa pun.
- Subclass adalah salah satu yang mewarisi properti dari kelas lain.
- Superclass adalah yang propertinya diwarisi.
57. Jelaskan konsep Enkapsulasi di Java?
Sebagai salah satu konsep utama Java OOP, Enkapsulasi memberdayakan pembungkusan data dan kode dalam satu unit saja. Enkapsulasi juga dikenal sebagai penyembunyian data, dengan variabel dari kelas tertentu disembunyikan dari semua kelas lain dan hanya dapat diakses dengan metode dari kelas yang ada.
Dua hal penting untuk mencapai enkapsulasi di Jawa adalah:
- Mendeklarasikan variabel dari kelas tertentu sebagai pribadi.
- Memanfaatkan metode penyetel dan pengambil publik untuk membuat perubahan dan melihat nilai variabel.
58. Menjelaskan konsep Polimorfisme.
Polimorfisme di Java memungkinkan pengembang untuk melakukan satu tugas dalam berbagai cara. Ada dua jenis Polymorphism di Java dengan Runtime dan Compile time. Anda dapat menggunakan metode overriding dan overloading untuk mengoperasikan Polymorphism di Java.
59. Jelaskan pengertian antarmuka.
Di Jawa, kami tidak dapat mencapai banyak pewarisan. Di sini, antarmuka memainkan peran penting dalam mengatasi masalah ini untuk mencapai abstraksi, membantu pewarisan berganda, dan juga mendukung kopling longgar. Sekarang kami memiliki metode default, statis, dan pribadi dalam antarmuka dengan pembaruan Java terbaru.
60. Apa yang dimaksud dengan kelas Abstrak?
Kelas abstrak dibangun dengan kata kunci abstrak tertentu di Jawa. Mereka mewakili metode abstrak dan non-abstrak.
61. Jelaskan Kelas Abstraksi di Java?
Abstraksi adalah salah satu properti penting untuk menyembunyikan informasi implementasi dari pengguna dan kemudian mewakili fungsi pengguna saja. For instance, when you send an SMS from one person to another person. The user gets to know only the message and number while the backend process remains hidden.
You can achieve abstraction in Java using the following two ways:
- Abstract Class (0 to 100%)
- Interface (100%)
62. Explain the difference between Abstraction and Encapsulation in Java.
Here are the main differences:
Abstraksi | Enkapsulasi |
Abstraction aims to gain information. | Encapsulation's main aim is to contain or procure information. |
In the abstraction process, issues or problems are handled at the interface/ design level. | In Encapsulation, problems are handled at a specific implementation level. |
Abstraction aids in hiding unwanted information. | Encapsulation method applies hiding data within a single unit. |
Implemented with interfaces and abstract classes. | Implemented with a particular access modifier (public, private, and protected). |
Use abstract classes and interfaces to hide complexities. | Use getters and setters to hide data. |
Objects that extend to abstraction must be encapsulated. | An object for encapsulation must not be abstracted. |
63. Explain the differences between Abstract class and interface.

Abstract Class | Antarmuka |
Abstract Class comes with a default constructor. | The interface doesn't have a constructor. So, no further process. |
Uses both Abstract and Non-Abstract methods. | Only use Abstract methods. |
Classes that must extend for Abstract class need only abstract methods throughout their sub-class. | Classes that extend to interface must provide implementation across all the methods. |
These include instance variables. | The interface presents constants only. |
64. Explain the main differences between Array and Array List.
Himpunan | Array List |
The size needs to be defined for the declaring array. String[] name = new String[5] | No size requirements; and modifies dynamically. ArrayList name = new ArrayList |
You must specify an index for putting an object inside the array. name[1] = “dog” | There are no index requirements.
name.add(“dog”) |
Arrays are not parameterised. | From Java 5.0 onwards, ArrayLists have a specific parameterised type. |
65. Explain the difference between static method and instance method.
Static or Class Method | Instance Method |
You must declare a method static for a static method. | All methods with declaration as static come under Instance method only. |
No requirements for creating objects in the Static method. | The object is a must for calling the instance method. |
You cannot access Instance or Non-static methods in the static context. | You can access both static and non-static in the instance method. |
66. How to make Constructors static?
Constructors invoked with the object, and static context is part of the class, not the object. Hence, constructors cannot be static and show compiler error if run or executed.
67. Explain the use of 'this' keyword in Java?
In Java, 'this' keyword represents a specific reference on the current object. There are multiple uses for this keyword for referring to the current class properties from a variable, constructors, methods, and more. You can also pass this as an argument within constructors or methods. You can also fetch this as a return value from the current class instance. You can also refer to this as a static context.
Baca Juga: Cara Membuat Kode, Kompilasi, dan Menjalankan Proyek Java
68. What is a classloader in Java? What are the different types of ClassLoaders in Java?
Java Classloader's main function is to dynamically load all classes into the Java Virtual Machine (JVM). ClassLoaders are part of the JRE only. So every time we run a Java program, classloader loads the classes to execute this program. A single ClassLoader loads only a specific class on requirements and uses getClassLoader() method to specify the class. These classes are loaded by calling their names, and in case these are not found then it retrieves or throws a ClassNotFoundException or NoClassDefFoundError.
Java ClassLoader uses three principles in performing tasks with delegation, uniqueness, and visibility.
There are three different types of Java ClassLoader:
- BootStrap ClassLoader:
BootStrap ClassLoader represents the parent or superclass for extension classloader and all other classloaders. It has machine code that loads the pure first Java ClassLoader and takes classes from the rt.jar and also known as Primordial ClassLoader.
- Extension ClassLoader:
Extension ClassLoader represents the child classloader for the superclass or BootStrap ClassLoader. It loads core java classes from jre/lib/ext , ie, JDK extension library.
- System ClassLoader:
Application or System ClassLoader are further child classes of Extension ClassLoader. It takes and loads a file from the current directory for the program that you can customise with the 'classpath' switch.
69. Explain the meaning of Java Applet.
Java Applet is a program that executes or runs in the web browser only. Applets are specifically designed to function and embed with HTML web pages. Applets have the capability to function full Java applications with the entire use of Java API. JVM is a must requirement to view an applet on the browser. Applet extends with the use of java.applet.Applet class.
70. What are the types of Applets?
Based on location, there are two types of Java applets as Local Applets that are stored on the same computer or system. The Remote Applets that have files on remote systems.
71 What are immutable objects in Java?
Di Java, objek yang tidak dapat diubah adalah objek yang statusnya tidak berubah setelah dibuat. Objek yang tidak dapat diubah ideal untuk aplikasi multi-utas yang memungkinkan berbagi utas sambil menghindari sinkronisasi. Objek yang tidak dapat diubah lebih disukai untuk membuat kode yang sederhana, sehat, dan andal agar sesuai dengan strategi yang efektif.
72. Apa yang Anda maksud dengan JRE (Java Runtime Environment)?
Java Runtime Environment adalah lapisan perangkat lunak yang menyediakan dukungan untuk persyaratan minimum untuk menjalankan program Java pada mesin. Seiring dengan JDK dan JRE, ketiganya merupakan dasar untuk menjalankan dan mengembangkan program Java pada mesin tertentu.
73. Apa itu bagian dari JDK?
Java Development Kit (JDK) adalah salah satu paket teknologi utama yang penting untuk menjalankan program Java. Ini dapat berupa implementasi dari salah satu platform Java, Edisi Standar, Edisi Mikro atau Perusahaan yang dikembangkan oleh Oracle untuk membangun aplikasi di Windows, Linux, atau macOS.
74. Apa itu Mesin Virtual Java (JVM)?
Java Virtual Machine (JVM) adalah salah satu dari tiga persyaratan mendasar untuk menjalankan dan mengeksekusi program Java bersama dengan JDK dan JRE. JVM memiliki dua fungsi utama; pertama, untuk memberdayakan program Java agar berjalan mulus di mesin atau sistem apa pun dan kedua untuk mengoptimalkan memori untuk memberikan kinerja.
75. Apa perbedaan antara JDK, JRE, dan JVM?
JVM | JRE | JDK |
Mesin Virtual Java | Lingkungan Waktu Proses Java | Kit Pengembangan Java |
Platform tergantung dengan beberapa pilihan perangkat lunak dan perangkat keras yang tersedia. | Lapisan perangkat lunak yang menyediakan dukungan untuk persyaratan minimum untuk menjalankan program Java pada mesin. | edisi Standar Edisi Perusahaan Edisi Mikro |
Tiga pengertian sebagai:
| Kumpulan pustaka + file yang memberdayakan JVM saat runtime. | JRE + alat pengembangan |
Menyediakan lingkungan runtime untuk eksekusi. | JRE mewakili implementasi JVM. | Lingkungan pengembangan perangkat lunak. |
76. Berapa banyak jenis area memori yang ada di JVM?
Ada beberapa jenis area memori di JVM:
- Area Kelas: Memori ini menyimpan struktur pra-kelas dengan bidang, kumpulan, data metode, dan kode.
- Heap adalah singkatan dari runtime memory yang secara khusus dialokasikan ke objek.
- Stack mewakili memori frame dengan variabel lokal, hasil parsial, utas, dan bingkai untuk setiap metode.
- Program Counter Register menyimpan informasi untuk instruksi saat ini dengan eksekusi mesin Virtual Java.
- Metode asli Stack menyimpan semua metode asli saat ini yang digunakan dalam aplikasi saat ini.
77. Apa itu Pengikatan Data di Jawa?
Pengikatan data mewakili koneksi antara kelas dan metode, bidang, variabel, konstruktor, atau badan metode. Java dapat menangani pengikatan data baik secara statis maupun dinamis.
78. Apa saja jenis data binding di Java?
Ada dua tipe penting dari data binding di Java.
- Pengikatan Statis terjadi pada waktu kompilasi menggunakan metode statis, final, dan pribadi; juga dikenal sebagai pengikatan awal.
- Dynamic Binding hadir saat runtime tanpa informasi pasti yang diketahui tentang metode yang tepat selama waktu kompilasi.
79. Apa itu Soket Java?
Soket membantu dalam membangun mekanisme komunikasi dari dua komputer melalui TCP. Soket idealnya lebih memadai dan fleksibel untuk komunikasi.
80. Jelaskan perbedaan antara Path dan Classpath.
Baik path dan Classpath mewakili variabel lingkungan lokal. Jalur menyediakan perangkat lunak untuk menemukan file yang dapat dieksekusi sementara ClassPath menentukan lokasi untuk file .class di sistem.
81. Apakah ada metode abstrak tanpa menggunakan kelas abstrak?
Tidak, agar metode abstrak ada di kelas, itu harus kelas abstrak.
82. Bagaimana proses pembuatan kelas read-only di Java?
Di Java, Anda dapat membuat kelas hanya-baca dengan menjaga semua bidang tetap pribadi. Kelas khusus baca-saja ini hanya akan memiliki metode pengambil yang mengembalikan properti pribadi. Itu tidak memungkinkan untuk memodifikasi atau mengubah properti ini karena tidak ada metode penyetel yang tersedia.
1 2 3 4 5 6 7 8 9 | //Kelas hanya baca di Java siswa kelas umum { //anggota data pribadi lembaga String pribadi = "MKG" ; //metode pengambil untuk institut publik String getInstitute (){ kembali lembaga ; } } |
83. Bagaimana proses pembuatan kelas write-only di Java?
Di Java, Anda juga dapat membuat kelas hanya-tulis dengan menjaga semua bidang tetap pribadi dengan penerapan metode penyetel saja.
1 2 3 4 5 6 7 8 9 | // Kelas hanya-tulis di Java siswa kelas umum { //anggota data pribadi lembaga String pribadi ; //metode penyetel untuk lembaga public void setInstitute ( String institut ){ ini . lembaga = lembaga ; } } |
84. Jelaskan cara mengakses kelas di kelas lain di Jawa?
Di Java, ada dua cara untuk mengakses kelas di kelas lain sebagai:
- Menggunakan nama spesifik: Kami dapat mengakses kelas tertentu dari paket yang berbeda dengan menggunakan nama yang memenuhi syarat atau mengimpor paket yang berisi kelas tertentu.
- Menggunakan jalur relatif: Demikian pula, kita juga dapat menggunakan jalur relatif untuk paket tersebut dengan kelas tertentu.
85. Apa itu Penanganan Pengecualian?
Penanganan pengecualian merupakan mekanisme untuk menangani pengecualian atau kondisi abnormal selama kesalahan runtime untuk menjaga aliran normal aplikasi. Ada tiga jenis Pengecualian Java dengan Pengecualian Diperiksa, Pengecualian Tidak Dicentang, dan Kesalahan.
86. Jelaskan perbedaan antara Pengecualian yang Dicentang dan Pengecualian yang Tidak Dicentang.
- Pengecualian yang Dicentang adalah kelas yang memperluas kelas yang dapat dibuang lebih jauh kecuali untuk RuntimeException seperti SQLException, IOException, dll. Pengecualian yang Diperiksa ditangani selama waktu kompilasi saja.
- Pengecualian Tidak Dicentang adalah kelas yang memperpanjang RuntimeException seperti NullPointerException, ArithmeticException, dll. dan tidak ditangani selama waktu kompilasi.
87. Manakah kelas dasar untuk Pengecualian dan Kesalahan?
Di sini, kelas Throwable mewakili kelas dasar untuk Pengecualian dan Kesalahan.
88. Sebutkan kata kunci penanganan Exception di Jawa.
Ada lima kata kunci untuk penanganan exception di Java yaitu:
Kata kunci | Keterangan |
mencoba | Blok try ini mendefinisikan blok untuk menempatkan kode eksekusi. Blok try ini biasanya diikuti dengan penggunaan catch atau last. Jadi, mereka tidak bisa digunakan sendiri. |
menangkap | Tujuan utama catch block adalah untuk menangani exception. Anda harus menggunakan ini dalam kombinasi dengan blok coba dan akhirnya di tahap selanjutnya. |
akhirnya | Terakhir, blok memeriksa kode penting program yang memeriksa apakah eksekusi dilakukan atau tidak. |
melemparkan | Tujuan utama dari kata kunci throw adalah untuk melempar pengecualian dari program. |
melempar | Kata kunci throws terutama digunakan untuk mendeklarasikan eksepsi dan bukan untuk melempar eksepsi. Ini memberikan informasi tentang kejadian untuk pengecualian dan diterapkan dengan tanda tangan metode. |
89. Jelaskan pentingnya blok terakhir.
Di sini, blok terakhir sangat penting dalam kelancaran program. Itu selalu dieksekusi apakah pengecualian ditangani atau tidak. Akhirnya, blok muncul setelah blok coba atau tangkap. Dalam JVM, sistem akan selalu menjalankan blok terakhir sebelum mengakhiri atau menutup file. Untuk setiap blok coba yang ada, bisa ada nol atau beberapa blok tangkap, masih hanya ada satu blok akhirnya.
90. Apakah menjalankan blok akhirnya mungkin tanpa blok tangkap?
Ya, blok akhirnya dapat dijalankan diikuti oleh blok coba atau tangkap, masing-masing.
91. Apakah ada kasus untuk blok akhirnya yang tidak ada?
Akhirnya blok tidak berjalan atau mengeksekusi jika program sudah ada atau membawa kesalahan fatal untuk membatalkan proses.
92. Jelaskan perbedaan utama antara lemparan dan lemparan.
melempar kata kunci | melempar kata kunci |
Itu melempar pengecualian. | Ini menyatakan pengecualian. |
Pengecualian yang dicentang tidak dapat disebarkan dengan lemparan saja. | Pengecualian yang diperiksa dapat menyebar dengan lemparan. |
Hal ini diikuti oleh sebuah contoh. | Hal ini diikuti oleh kelas. |
Ini digunakan dalam metode saja. | Ini digunakan dengan tanda tangan metode tertentu. |
Tidak ada kemungkinan untuk beberapa pengecualian. | Sedangkan dalam prosedur ini, beberapa pengecualian dapat dideklarasikan. |
93. Apakah ada kemungkinan pengecualian untuk diajukan kembali?
Ya, jika ada pengecualian, maka itu bisa dilempar kembali.
94. Jelaskan tentang Exception Propagation.
Proses pengecualian dalam prosedur penanganan dikenal sebagai propagasi pengecualian. Misalnya, pengecualian pertama ditangani di bagian atas tumpukan dan kemudian jika tidak tertangkap maka pengecualian turun ke metode sebelumnya dan jika tidak, maka turun lebih jauh sampai pengecualian tertangkap, atau mencapai bagian bawah dari tumpukan. Pengecualian yang diperiksa secara default tidak memiliki propagasi.
95. Jelaskan pengertian benang dalam bahasa Jawa.
Di Jawa, cara atau alur eksekusi dikenal sebagai utas. Jadi, setiap program berisi satu utas yang disebut sebagai utas utama yang dibuat oleh JVM. Pengembang memiliki kekuatan untuk menentukan utas khusus mereka dengan menambahkan dan memperluas kelas Utas menggunakan antarmuka.
96. Jelaskan arti dari thread pool.
Kumpulan utas Java adalah sekelompok beberapa utas yang terus menunggu tugas yang dialokasikan. Di sini Kumpulan utas bekerja di bawah penyedia layanan yang menarik utas dari kumpulan ini dan kemudian menetapkan mereka tugas untuk pekerjaan tertentu. Kumpulan Thread menambahkan lebih banyak kinerja dan stabilitas ke sistem.
97. Jelaskan perbedaan antara String dan StringBuffer.
Rangkaian | StringBuffer |
Kelas string tidak dapat diubah sifatnya. | Kelas StringBuffer, di sisi lain, bisa berubah. |
String lambat. | StringBuffer sebaliknya cukup cepat. |
Ini menghabiskan lebih banyak memori untuk membuat instance baru. | Ini mengkonsumsi lebih sedikit memori dengan string concat. |
String memungkinkan perbandingan isinya, karena menggantikan metode equals() dari kelas Object. | Sedangkan kelas StringBuffer tidak dapat mengganti metode equals() dari kelas Object. |
98. Jelaskan perbedaan antara StringBuffer dan StringBuilder.
StringBuffer | StringBuilder |
Itu disinkronkan dengan keamanan ke utas. | Ini tidak disinkronkan tanpa keamanan untuk utas. |
Dalam hal ini, dua utas tidak memiliki metode panggilan. | Dalam hal ini, dua utas dapat memiliki metode panggilan dengan mulus. |
Lebih rendah atau kurang efisien daripada StringBuilder. | Lebih efisien daripada StringBuffer. |
99. Bagaimana cara membuat kelas yang tidak dapat diubah di Java?
Di Java, Anda dapat membuat kelas yang tidak dapat diubah dengan mendeklarasikan kelas final dengan semua anggotanya sebagai final. Mari kita ambil contoh untuk memahami ini:
1 2 3 4 5 6 7 8 9 10 11 12 | Karyawan kelas akhir publik { String securityNumber terakhir ; Pegawai publik ( String securityNumber ){ ini . securityNumber = nomor keamanan ; } String publik getSecurityNumber (){ kembali securityNumber ; } } |
99. Apa itu inner class?
Kelas dalam Java didefinisikan dan dideklarasikan dalam antarmuka atau kelas. Kelas dalam memungkinkan sistem untuk mengelompokkan kelas dan antarmuka secara logis sehingga membuatnya lebih mudah dibaca serta mudah dipelihara. Selain itu, kelas-kelas ini dapat mengakses semua anggota kelas luar dengan metode serta anggota data pribadi.
100. Apa keuntungan dan kerugian utama menggunakan kelas Java Inner?
Keuntungan utama untuk kelas dalam Java meliputi:
- Aksesibilitas ke semua anggota dari kelas luar.
- Lebih sedikit kode untuk ditulis.
- Lebih banyak pemeliharaan dan kode yang dapat dibaca.
Kerugian utama untuk kelas dalam Java meliputi:
- Kurang dukungan dari IDE.
- Jumlah total kelas yang tinggi.
101. Jelaskan jenis-jenis kelas dalam dalam bahasa pemrograman Java?
Kelas dalam memiliki tiga jenis utama:
- Anggota kelas dalam yang menentukan kelas di dalam kelas menggunakan metode luar.
- Kelas Dalam Anonim untuk memperluas kelas atau menentukan implementasi antarmuka.
- Kelas Dalam Lokal untuk membuat kelas di dalam metode.
102. Tentukan kelas bersarang.
Kelas bersarang didefinisikan atau dideklarasikan di dalam kelas atau antarmuka saja. Kelas bersarang dapat secara khusus mengakses semua anggota kelas luar dengan metode dan anggota data pribadi juga. Berikut adalah sintaks sederhana dari kelas bersarang:
1 2 3 4 5 6 | kelas Java_Outer_class { //kode kelas Java_Nested_class { //kode } } |
103. Bisakah Anda menjelaskan perbedaan antara kelas dalam dan kelas bersarang?
Semua kelas dalam didefinisikan sebagai kelas bersarang non-statis. Jadi, kelas dalam adalah bagian dari kelas bersarang saja.
104. Bagaimana Anda mendefinisikan arti Collections di Java?
Koleksi di Jawa adalah sekelompok beberapa objek yang hadir sebagai satu unit; terutama dikenal sebagai Koleksi objek. Mereka juga disebut Kerangka Koleksi atau arsitektur yang menyediakan ruang penyimpanan untuk objek dan selanjutnya memanipulasi desain untuk perubahan.
Berikut adalah fungsi utama yang dilakukan oleh Java Collections:
- Penyortiran
- mencari
- Insersi
- Manipulasi
- Penghapusan
Ada banyak antarmuka dan kelas yang merupakan bagian dari koleksi.
105. Antarmuka dan kelas mana yang tersedia dalam koleksi?
Berikut adalah daftar antarmuka dan kelas yang tersedia dengan koleksi di Java.
- Antarmuka: Koleksi, Antrian, Kumpulan Terurut, Peta Terurut, Daftar, Kumpulan, Peta
- Kelas: Daftar, Vektor, Daftar Array, Daftar Tertaut
- Set: Hash set, Tree set, Linked Hash Set
- Peta: Peta hash, Tabel Hash, TreeMap, Peta Hash Tertaut
- Antrian: Antrian Prioritas
106. Jelaskan yang diurutkan dan diurutkan dalam kaitannya dengan koleksi di Jawa?
- Diurutkan: Penyortiran memungkinkan sekelompok objek untuk diterapkan secara internal atau eksternal untuk mengurutkannya dalam koleksi tertentu, berdasarkan propertinya yang berbeda.
- Diurutkan: Mendefinisikan nilai yang diurutkan berdasarkan nilai yang ditambahkan dalam koleksi dan mengulanginya dalam urutan tertentu.
107. Apa saja daftar berbeda yang tersedia dalam koleksi?
Mencantumkan nilai penyimpanan berdasarkan posisi indeksnya dengan duplikasi yang diizinkan. Berikut adalah jenis daftar utama:
Daftar Array: Menggunakan Antarmuka Akses Acak, menyediakan koleksi pesanan berdasarkan indeks, tidak diurutkan, dan menawarkan iterasi cepat. Berikut adalah contoh untuk memahami ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Buah kelas umum { public static void main ( String [ ] args ){ ArrayList < String > nama = new ArrayList < String >(); nama . tambahkan ( " apel " ); nama . tambahkan ( " alpukat " ); nama . tambahkan ( " ceri " ); nama . tambahkan ( " kiwi " ); nama . tambahkan ( " jeruk " ); nama . tambahkan ( " pisang " ); nama . tambahkan ( " kiwi " ); Sistem . keluar . println ( nama ); } } |
Keluarannya adalah sebagai berikut:
[Apel, alpukat, ceri, kiwi, jeruk, pisang, kiwi] |
Dengan output, Anda dapat memeriksa bahwa Daftar Array menyimpan urutan penyisipan asli dan juga memungkinkan duplikat. Meskipun tidak diurutkan.
Vektor: juga menggunakan metode akses acak, disinkronkan, dan menawarkan dukungan untuk keamanan utas.
Mari kita pahami ini dengan sebuah contoh:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Buah kelas umum { public static void main ( String [ ] args ){ ArrayList < String > nama = vektor baru < String >(); nama . tambahkan ( " kiwi " ); nama . tambahkan ( " jeruk " ); nama . tambahkan ( " pisang " ); nama . tambahkan ( " apel " ); nama . tambahkan ( " alpukat " ); nama . tambahkan ( " ceri " ); nama . tambahkan ( " kiwi " ); Sistem . keluar . println ( nama ); } } |
Keluarannya adalah sebagai berikut:
[kiwi, jeruk, pisang, apel, alpukat, ceri, kiwi] |
Daftar vektor mengikuti urutan penyisipan asli dan juga mendukung duplikat.
Daftar Tertaut: Ini juga merupakan pilihan ideal untuk penghapusan dan penyisipan, elemen ditautkan ganda, tetapi kinerjanya lambat.
Contoh untuk Daftar tertaut:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Buah kelas umum { public static void main ( String [ ] args ){ ArrayList < String > nama = vektor baru < String >(); nama . tambahkan ( " kiwi " ); nama . tambahkan ( " jeruk " ); nama . tambahkan ( " pisang " ); nama . tambahkan ( " apel " ); nama . tambahkan ( " alpukat " ); nama . tambahkan ( " ceri " ); nama . tambahkan ( " kiwi " ); Sistem . keluar . println ( nama ); } } |
Keluarannya adalah sebagai berikut:
[Apel, alpukat, ceri, kiwi, jeruk, pisang, kiwi] |
Itu juga mengikuti urutan penyisipan asli dan menerima duplikat.
108. Apa perbedaan utama antara collection dan collection di Java?
Perbedaan utamanya adalah sebagai berikut:
- Koleksi mewakili antarmuka sementara Koleksi terutama hanya kelas.
- Koleksi antarmuka menyediakan beberapa fungsi untuk penataan data sebagai Daftar, Set, dan Antrian. Sedangkan tujuan utama kelas Collection terbatas pada pengurutan dan sinkronisasi elemen-elemen koleksi.
109. Jelaskan Antrian Prioritas.
Priority Queue mendefinisikan antarmuka antrian untuk menangani linked list dengan tujuan Priority-in dan Priority-out. Antrian umumnya mengikuti algoritma first in first out (FIFO), Anda tetap dapat mengantri elemen berdasarkan persyaratan tertentu, dan kemudian kami dapat mengimplementasikan PriorityQueue untuk penyesuaian. Dengan Antrian Prioritas, itu tergantung pada tumpukan prioritas baik secara alami atau melalui pembanding pada prioritas relatifnya.
110. Kapan ideal untuk menggunakan dan membandingkan antarmuka Runnable di Java?
Ketika kita perlu memperluas kelas dengan beberapa kelas lain dan bukan utas, maka antarmuka yang dapat dijalankan adalah pilihan yang ideal.
111. Apa perbedaan antara metode start() dan run() dari kelas thread?
Metode start() menambahkan dan membuat utas baru. Dan kode dalam metode run() dieksekusi di utas baru saja. Sementara metode run() hanya akan mengeksekusi kode di utas saat ini.
112. Apa itu Multithreading?
Di Java, kita dapat mengeksekusi beberapa thread secara bersamaan, yang dikenal sebagai Multithreading. Ini membantu program untuk melakukan banyak tugas sambil mengambil lebih sedikit memori dan memberikan kinerja yang lebih tinggi. Di Multithreading, utas ringan, berbagi ruang yang sama, dan cukup terjangkau di setiap aspek.
113. Jelaskan perbedaan antara proses dan utas.
Di sini perbedaan utamanya adalah:
- Program Java yang sedang dieksekusi disebut sebagai proses sedangkan utas mewakili subset dari proses saja.
- Proses mewakili ruang yang berbeda dalam memori, sedangkan utas memiliki alamat yang sama.
- Proses sepenuhnya independen, sedangkan utas adalah bagian dari proses saja.
- Komunikasi lambat antar proses, sedangkan komunikasi antar thread cepat.
114. Jelaskan pengertian komunikasi antar utas.
Komunikasi antar-utas didefinisikan sebagai proses yang memungkinkan komunikasi antara beberapa utas yang disinkronkan. Tujuan utamanya adalah untuk menghindari penggabungan utas di Jawa. Komunikasi dicapai melalui metode wait(), notify(), dan notifyAll().
115. Jelaskan metode wait() .
Dengan metode wait() , Anda dapat mengizinkan utas berada dalam tahap menunggu sementara utas lainnya dikunci pada objek. Dengan demikian, metode wait() dapat menambah durasi tunggu yang signifikan untuk utas.
Berikut adalah sintaks untuk mewakili ini:
1 2 3 4 5 6 | public static void main ( String [] args ){ Utas t = Utas baru (); t . mulai (); Disinkronkan ( t ) { Tunggu (); } |
116. Apa perbedaan utama antara metode notify() dan notifyAll() di Java?
metode notify() mengirimkan sinyal untuk membangunkan hanya utas tertentu di kumpulan tunggu sedangkan notifyAll() membangunkan semua utas di tahap tunggu kumpulan.
117. Tentukan perbedaan utama antara sleep() dan wait().
Sleep() menjeda atau menghentikan kemajuan utas saat ini dengan menangguhkan eksekusi selama durasi tertentu tanpa melepaskan kunci. Sementara wait() menyebabkan durasi menunggu untuk thread setelah memanggil metode notify() untuk bangun nanti.
118. Jelaskan metode join() dalam kaitannya dengan thread di Java.
Metode join() memungkinkan menggabungkan satu utas dengan salah satu utas berkelanjutan. Berikut adalah sintaks untuk metode join():
1 2 3 4 5 | public static void main ( String [] args ){ Utas t = Utas baru (); t . mulai (); t . bergabung (); } |
119. Jelaskan metode Hasil Benang.
Metode hasil adalah metode statis dan tidak melepaskan kunci apa pun di utas. Di sini, metode Yield() memberdayakan utas saat ini ke utas yang lebih dapat dijalankan sambil mengizinkan utas lainnya untuk mempertahankan eksekusi. Dengan demikian, utas prioritas utas yang sama dapat berjalan secara teratur.
120. Apa itu tahap Kelaparan?
Kelaparan adalah fase ketika utas gagal mendapatkan akses ke sumber daya bersama dan tidak dapat membuat kemajuan apa pun.
121. Apa itu Deadlock untuk sebuah thread?
Deadlock mendefinisikan tahap ketika dua atau beberapa utas diblokir selamanya dalam menunggu satu sama lain.
122. Definisikan Serialisasi dan Deserialisasi di Java?
Serialisasi adalah proses untuk mengubah status objek menjadi aliran byte tertentu yang cocok untuk teknologi JPA, JMS, RMI, JPA, dan Hibernate. Sedangkan proses kebalikan dari mengubah aliran byte menjadi objek disebut deserialization. Kedua proses adalah platform-independen, sehingga memungkinkan Anda untuk membuat serial dalam satu platform dan deserialise ke platform yang sama sekali berbeda secara efisien.
123. Apa pentingnya variabel transien?
Pentingnya variabel transien terletak pada deserialisasi yang diatur ke variabel default dan tidak digunakan dengan variabel statis.
124. Apa itu variabel volatil?
Variabel volatil memainkan peran penting dalam sinkronisasi dan pembacaan dari memori utama sambil menghindari memori cache thread.
125. Apa itu SerialVersionUID?
Dalam proses Serialized, sebuah objek dicap dengan nomor ID versi tertentu untuk kelas objek masing-masing. Nomor ini disebut sebagai SerialVersionUID dan memainkan peran penting dalam memverifikasi selama proses deserialisasi untuk memeriksa kompatibilitas pada pengirim dan penerima, masing-masing.
126. Bagaimana proses kloning suatu objek di Java?
Dengan Kloning objek, Anda dapat membuat salinan persis dari objek aslinya. Agar kloning dapat dilakukan, sebuah kelas harus memiliki dukungan untuk kloning dengan antarmuka java.lang.Cloneable dan mengizinkan metode override clone() dari kelas objek asli.
Berikut sintaks sederhana untuk metode clone():
Objek yang dilindungi clone() melempar CloneNotSupportedException |
Jika klon tidak mengimplementasikannya maka biasanya akan mengeluarkan pengecualian dengan 'CloneNotSupportedException'.
127. Tentukan kelas yang tetap menjadi superclass untuk setiap kelas?
Kelas objek.
128. Tentukan apakah kelas string bisa berubah atau tidak berubah?
Kelas string mewakili keadaan yang tidak dapat diubah. Jadi begitu sebuah objek dibuat, ini tidak dapat berubah lebih jauh.
129. Bagaimana Anda membedakan antara kelas StringBuffer dan StringBuilder?
- StringBuilder lebih cepat daripada StringBuffer.
- StringBuffer disinkronkan sementara StringBuilder tidak disinkronkan.
- StringBuffer menawarkan lingkungan thread-safe, sedangkan StringBuilder tidak memiliki kemampuan thread-safe.
130. Apa kegunaan metode toString() di Java?
Di Java, toString() mengambil atau mengembalikan representasi string dari objek apa pun.
131. Apa yang dimaksud dengan pengumpulan sampah di Jawa?
Saat objek dialokasikan secara dinamis melalui operator, sistem Java juga menangani dealokasi memori yang digunakan secara otomatis jika tidak ada referensi untuk objek yang tersisa untuk durasi yang signifikan. Proses menjaga sistem bebas dari objek yang tidak digunakan dikenal sebagai Pengumpulan Sampah di Jawa. Tujuan utama dari pengumpulan sampah adalah untuk membuat manajemen memori lebih efisien.
132. Berapa kali pengumpul sampah memanggil metode finalize() untuk objek tertentu?
Anda dapat memanggil metode finalize() dalam pengumpulan sampah hanya sekali.
133. Tentukan cara untuk memanggil pengumpulan sampah.
Ada dua cara untuk memanggil pengumpulan sampah:
- Sistem.gc()
- Runtime.getRuntime().gc()
134. Bisakah kita memaksa Pengumpulan Sampah?
Tidak, ini adalah proses otomatis. Anda dapat memanggil metode pengumpulan sampah tetapi tidak dapat memaksanya. Namun, itu tidak menjamin bahwa itu akan lengkap.
135. Apa saja tipe data yang berbeda di Java? Menjelaskan.
Berikut adalah daftar pendek untuk membantu Anda dengan tipe data:
- byte – 8 bit
- pendek – 16 bit
- char – Unicode 16 bit
- int – 32 bit (bilangan bulat)
- float – 32 bit (bilangan real)
- panjang – 64 bit (Presisi tunggal)
- ganda – 64 bit (presisi ganda)
136. Tentukan Unicode.
Unicode adalah cara untuk mendefinisikan karakter internasional dalam bahasa manusia, dan Java menggunakan struktur Unicode ini untuk melambangkan karakter.
137. Definisikan literal.
Literal adalah nilai konstanta yang ditetapkan untuk variabel tertentu
// Di sini 105 adalah literal int bilangan = 105 |
138. Tentukan jenis casting di Jawa?

Dalam hal menetapkan nilai dari satu tipe data ke tipe data lain, keduanya mungkin kompatibel atau tidak dan memerlukan konversi. Java akan secara otomatis mengonversi jika ada tipe data yang kompatibel. Sementara jika tipe data tidak kompatibel, maka ini harus dilemparkan agar konversi berhasil. Casting memiliki dua tipe dasar: Implicit dan Explicit.
139. Jelaskan dua jenis typecasting yang berbeda?
- Implicit: Mendefinisikan penyimpanan nilai dari tipe data yang lebih kecil ke tipe data yang lebih besar, yang dilakukan oleh compiler saja.
- Eksplisit: Mendefinisikan penyimpanan nilai dari tipe data yang lebih besar ke tipe data yang lebih kecil yang dapat mengakibatkan hilangnya informasi.
Kesimpulan
Pertanyaan wawancara Java di atas akan memberikan awal yang baik untuk mempersiapkan wawancara. Latih keterampilan coding Anda juga, dan pastikan untuk teliti dalam pertanyaan-pertanyaan ini dan konsep terkait sehingga ketika pewawancara memberikan Q, Anda siap untuk memenangkan ronde dengan A Anda. Oh, dan jangan lupa 3 (tidak mencolok) napas saat Anda menampilkan diri di depan pewawancara.
Jika Anda tertarik untuk mempelajari lebih lanjut tentang Java, pengembangan perangkat lunak full-stack, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak – Spesialisasi dalam Pengembangan Full Stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat , 9+ proyek, dan tugas, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.
Semua yang terbaik! Semoga Anda Retak Wawancara Anda !!