JavaRush /Java Blog /Random-ID /Rehat kopi #58. 20 Pertanyaan Wawancara Penting yang Haru...

Rehat kopi #58. 20 Pertanyaan Wawancara Penting yang Harus Diketahui Pengembang Java. Manfaat mengetahui berbagai bahasa pemrograman

Dipublikasikan di grup Random-ID

20 Pertanyaan Wawancara Penting yang Harus Diketahui Pengembang Java

Sumber: Dev.toRehat kopi #58.  20 Pertanyaan Wawancara Penting yang Harus Diketahui Pengembang Java.  Manfaat mengetahui banyak bahasa pemrograman - 1

1. Apa saja dua jenis pengecualian di Java? Apa perbedaan di antara keduanya?

Jawaban: Ada dua jenis pengecualian di Java: pengecualian yang dicentang dan tidak dicentang.
  1. Pengecualian yang tidak dicentang tidak perlu dideklarasikan dalam pernyataan kata kunci metode atau konstruktor jika pengecualian tersebut dapat dilempar saat metode atau konstruktor dijalankan dan menyebar melampaui batas metode atau konstruktor.
  2. Di sisi lain, pengecualian yang dicentang harus dideklarasikan dalam metode konstruktor atau pernyataan kata kunci.

2. Apa itu JVM? Mengapa Java disebut sebagai "bahasa pemrograman yang tidak bergantung pada platform"?

Jawab: Java Virtual Machine (JVM) adalah mesin virtual proses yang dapat mengeksekusi bytecode Java. Setiap file sumber Java dikompilasi menjadi file bytecode, yang dijalankan oleh JVM. Bahasa Java dirancang untuk membuat program aplikasi yang dapat berjalan pada platform apa pun, tanpa perlu menulis ulang atau mengkompilasi ulang untuk setiap platform individual. Mesin Virtual Java memungkinkan hal ini karena ia mengetahui panjang instruksi spesifik dan fitur lain dari platform perangkat keras yang mendasarinya.

3. Apa perbedaan antara applet dan aplikasi Java?

Menjawab:
  • Applet dijalankan di jendela browser yang mendukung Java.
  • Aplikasi Java adalah program Java mandiri yang dapat dijalankan di luar browser.
Keduanya membutuhkan Java Virtual Machine (JVM). Namun, aplikasi Java memerlukan metode utama dengan tanda tangan tertentu untuk mulai dijalankan. Applet Java tidak memerlukan metode seperti itu untuk memulai eksekusi. Selain itu, applet Java biasanya menggunakan kebijakan keamanan yang ketat, sedangkan aplikasi Java biasanya menggunakan kebijakan keamanan yang lebih longgar.

4. Apa perbedaan JDK dan JRE?

Menjawab:
  • Java Runtime Environment (JRE) pada dasarnya adalah Java Virtual Machine (JVM) yang menjalankan program Java Anda. Ini juga mencakup plugin browser untuk menjalankan applet.
  • Java Development Kit (JDK) adalah kit pengembangan perangkat lunak berfitur lengkap untuk bahasa Java, termasuk JRE, compiler, dan alat (seperti JavaDoc dan Java Debugger) untuk memungkinkan pengguna mengembangkan, mengkompilasi, dan menjalankan aplikasi Java.

5. Apa itu servlet?

Jawab: Servlet adalah kelas bahasa pemrograman Java yang digunakan untuk memproses permintaan klien dan membuat konten web dinamis. Servlet terutama digunakan untuk memproses atau menyimpan data yang dikirimkan oleh formulir HTML, menyediakan konten dinamis, dan mengelola informasi status yang tidak ada dalam HTTP tanpa kewarganegaraan.

6. Apa itu halaman JSP?

Jawaban: Java Server Page (JSP) adalah dokumen teks yang berisi dua jenis teks:
  • data statis,
  • elemen JSP.
Data statis dapat diekspresikan dalam format teks apa pun, seperti HTML atau XML. JSP adalah teknologi yang menggabungkan konten statis dengan konten yang dihasilkan secara dinamis.

7. Apa yang dimaksud dengan arahan? Jenis arahan apa yang tersedia di JSP?

Jawab: Directive adalah instruksi yang diproses oleh mesin JSP ketika halaman dikompilasi menjadi servlet. Arahan digunakan untuk menyetel petunjuk tingkat laman, menyisipkan data dari file eksternal, dan menentukan pustaka tag khusus. Arahan didefinisikan antara <%@ dan %>. Berbagai jenis arahan ditunjukkan di bawah ini:
  • Sertakan arahan: Digunakan untuk memasukkan file dan menggabungkan konten file dengan halaman saat ini.
  • Petunjuk Halaman: Digunakan untuk mendefinisikan atribut tertentu pada halaman JSP seperti halaman kesalahan dan buffer.
  • Taglib: Digunakan untuk mendeklarasikan taglib khusus yang digunakan pada halaman.

8. Apa yang dilakukan metode System.gc() dan Runtime.gc()?

Jawaban: Metode ini dapat digunakan sebagai petunjuk bagi JVM untuk memicu pengumpulan sampah. Biasanya, Java Virtual Machine (JVM) menjalankan pengumpulan sampah secara berkala atau ketika memori bebas mencapai tingkat rendah.

9. Apa perbedaan antara HashMap dan Hashtable?

Jawaban: Ada beberapa perbedaan antara HashMap dan Hashtable di Java:
  1. Hashtable disinkronkan sedangkan HashMap tidak. Hal ini membuat HashMap lebih baik untuk aplikasi non-thread, karena objek yang tidak disinkronkan umumnya berkinerja lebih baik daripada objek yang disinkronkan.
  2. Hashtable tidak mengizinkan kunci atau nilai nol. HashMap memungkinkan Anda menggunakan satu kunci nol dan sejumlah nilai nol.
  3. Salah satu subkelas HashMap adalah LinkedHashMap, jadi jika Anda menginginkan urutan iterasi yang dapat diprediksi (urutan penyisipan default), Anda dapat dengan mudah menukar HashMap dengan LinkedHashMap. Ini tidak akan mudah jika Anda menggunakan Hashtable.

10. Apa itu JDBC?

Jawaban: JDBC adalah lapisan abstraksi yang memungkinkan pengguna memilih antar database. Dengan JDBC, pengembang dapat menulis aplikasi database dalam Java tanpa mengkhawatirkan detail di balik database tertentu.

11. Apa yang dimaksud dengan kata kunci "statis"? Bisakah Anda mengganti metode privat atau statis di Java?

Jawaban: Kata kunci statis berarti anggota variabel atau metode dapat diakses tanpa memerlukan turunan dari kelas tempatnya berada . Pengguna tidak dapat mengganti metode statis di Java karena penggantian metode didasarkan pada pengikatan dinamis pada waktu proses dan metode statis terikat secara permanen pada waktu kompilasi. Metode statis tidak terkait dengan instance kelas mana pun, jadi konsep ini tidak dapat diterapkan.

12. Apa pentingnya blok akhirnya ketika menangani pengecualian?

Jawaban: Blok akhirnya akan selalu dieksekusi, terlepas dari apakah pengecualian dilempar. Bahkan jika tidak ada pernyataan catch dan terjadi pengecualian. Satu hal lagi yang perlu disebutkan adalah bahwa blok akhirnya digunakan untuk melepaskan sumber daya seperti buffer I/O, koneksi database, dll.

13. Apa perbedaan antara Exception dan Error di Java?

Jawaban: Error merupakan kondisi kritis yang tidak dapat ditangani oleh kode program. Pengecualian adalah situasi luar biasa yang dapat ditangani oleh kode program.

14. Kapan suatu objek memenuhi syarat untuk pengumpulan sampah di Jawa?

Jawaban: Objek Java akan terkena pengumpulan sampah jika tidak tersedia untuk program yang sedang menggunakannya.

15. Apa itu iterator?

Jawaban: Antarmuka Iterator menyediakan sejumlah metode yang dapat melakukan iterasi melalui koleksi apa pun . Setiap koleksi Java berisi metode Iterator yang mengembalikan instance Iterator . Iterator dapat menghapus elemen dari koleksi yang mendasarinya selama iterasi.

16. Apa yang dimaksud dengan passing by reference dan passing by value?

Menjawab:
  • Ketika suatu objek dilewatkan oleh value , itu berarti salinan objek tersebut diteruskan. Dengan cara ini, meskipun perubahan dilakukan pada objek ini, hal tersebut tidak akan memengaruhi nilai aslinya.
  • Ketika suatu objek dilewatkan dengan referensi , berarti objek tersebut tidak benar-benar diteruskan, melainkan referensi ke objek tersebut diteruskan. Dengan cara ini, setiap perubahan yang dilakukan dengan metode eksternal juga tercermin di semua tempat.

17. Apa itu applet Java?

Jawaban: Applet Java adalah program yang dapat dimasukkan ke dalam halaman HTML dan dijalankan di browser klien yang mendukung Java. Applet digunakan untuk membuat aplikasi web yang dinamis dan interaktif.

18. Bagaimana cara kerja HashMap di Java?

Jawaban: HashMap di Java menyimpan pasangan nilai kunci. HashMap memerlukan fungsi hash, menggunakan kode hash dan metode yang sama untuk menyetel dan mengambil elemen ke dan dari koleksi. Ketika metode put dipanggil , HashMap menghitung nilai hash dari kunci dan menyimpan pasangan pada indeks yang sesuai dalam koleksi. Jika kuncinya ada, nilainya diperbarui dengan nilai baru. Beberapa karakteristik penting HashMap adalah kapasitasnya, faktor beban, dan variasi ukuran ambang batas.

19. Apa antarmuka utama Java Collections Framework?

Jawab: Java Collections Framework adalah seperangkat antarmuka dan kelas yang dirancang untuk mendukung operasi pada kumpulan objek. Antarmuka utama yang ditemukan di Java Collections Framework adalah:
  • Koleksi mewakili sekelompok objek, yang dikenal sebagai elemennya.
  • Set adalah koleksi yang tidak boleh berisi elemen duplikat.
  • Daftar adalah kumpulan terurut yang dapat berisi elemen berulang.
  • Peta adalah objek yang memetakan kunci ke nilai dan tidak boleh berisi kunci duplikat.

20. Tipe data apa yang didukung Java? Apa itu Autoboxing dan Unboxing?

Jawaban: Bahasa pemrograman Java mendukung delapan tipe data primitif berikut:
  • byte
  • pendek
  • ke dalam
  • panjang
  • mengambang
  • dobel
  • boolean
  • arang
Autoboxing adalah konversi otomatis yang dilakukan oleh kompiler Java antara tipe primitif dan kelas pembungkus objek yang sesuai. Jika transformasi berjalan ke arah sebaliknya, operasi ini disebut Unboxing . Terima kasih telah membaca dan semoga sukses dalam wawancara teknis Anda!

Manfaat mengetahui berbagai bahasa pemrograman

Sumber: Dev.to Secara pribadi, saya yakin bahwa setiap pengembang harus mengetahui lebih dari satu bahasa pemrograman. Dengan kata lain, jika kita berbicara tentang bahasa pemrograman, pengembangnya haruslah seorang poliglot.Rehat kopi #58.  20 Pertanyaan Wawancara Penting yang Harus Diketahui Pengembang Java.  Manfaat mengetahui banyak bahasa pemrograman - 2

Bahasa primer dan sekunder

Untuk mempermudah, izinkan saya menjelaskan beberapa istilah yang digunakan dalam artikel ini. Saya percaya bahwa setiap pengembang harus memiliki satu bahasa yang dia sukai. Saya menyebut bahasa ini sebagai bahasa utama. Saya akan menyebutkan bahasa apa pun selain bahasa utama sebagai bahasa bantu. Tentu saja, seorang pengembang dapat mengubah bahasa utamanya (lebih dari sekali) sepanjang kariernya. Ini baik-baik saja. Ada banyak alasan mengapa hal ini dijelaskan.

Pakar

Dalam diskusi tentang pengembang poliglot, sering kali muncul argumen bahwa pengetahuan pengembang tentang bahasa kedua harus dibayar dengan kurangnya kemahiran dalam bahasa utama mereka. Pendukung gagasan ini berasumsi bahwa mempelajari setiap bahasa baru membutuhkan waktu, dan kali ini Anda tidak dapat lagi menghabiskan waktu untuk memperoleh pengetahuan tentang bahasa utama Anda. Cara berpikir ini tampaknya salah bagi saya. Saya melihat analogi lain: olahraga. Diketahui bahwa memainkan satu olahraga meningkatkan kinerja Anda di olahraga lain. Tentu saja, Anda bisa memenangkan medali emas di kedua nomor tersebut, dan anak panah sepertinya tidak akan membuat Anda menjadi perenang yang lebih baik. Sebaliknya, jika Anda seorang pemanjat tebing, maka yoga akan membantu Anda mengembangkan kelenturan dan keseimbangan. Oleh karena itu, berlatih yoga akan membuat Anda menjadi pendaki yang lebih baik dibandingkan tanpa yoga. Saya pikir mempelajari setiap bahasa tambahan sering kali akan meningkatkan keterampilan Anda dalam bahasa lain yang juga Anda ketahui.

Alat yang lebih beragam

Selain itu, mengetahui berbagai bahasa pemrograman sangat meningkatkan persenjataan Anda sebagai pengembang. Ini memperluas wawasan Anda dan memungkinkan Anda melihat hal-hal tertentu dari sudut pandang yang berbeda. Mari kita ambil contoh dari kehidupan sehari-hari. Jika Anda pernah menggunakan obeng, Anda pasti familiar dengan sekrup kepala Phillips. Sekilas, semua sekrup kepala Phillips sama dan sepertinya semuanya bisa dikencangkan dengan satu obeng. Ya, terkadang sulit bagi Anda untuk mengencangkan atau melepaskan beberapa sekrup, tetapi secara umum satu obeng sudah cukup untuk Anda. Rehat kopi #58.  20 Pertanyaan Wawancara Penting yang Harus Diketahui Pengembang Java.  Manfaat mengetahui banyak bahasa pemrograman - 3Namun suatu hari Anda masuk ke toko perkakas, melihat semua obeng cantik itu, dan menemukan bahwa ada berbagai jenis obeng Phillips. Anda melihat obeng yang Anda miliki adalah Phillips (PH) dan memutuskan untuk membeli saudara kembarnya, Pozidriv (PZ). Dan kemudian tiba-tiba ternyata satu sekrup lebih cocok untuk beberapa sekrup, dan sekrup lain lebih cocok untuk sekrup lainnya. Mereka terlihat sama, tetapi tidak dapat dipertukarkan . (Jika Anda bertanya-tanya apa arti huruf PH dan PZ pada obeng Anda - sekarang Anda tahu). Dengan lebih banyak pengetahuan dan alat tambahan, Anda akan dapat melakukan pekerjaan lebih baik saat berikutnya Anda perlu mengencangkan sekrup kepala Phillips. Hal yang sama berlaku untuk bahasa pemrograman.

Anda tidak perlu membayar untuk pengetahuan tambahan

Jadi, saya pribadi tidak melihat pentingnya mempelajari bahasa pemrograman tambahan. Apakah Anda akan sama-sama mahir dalam kedua bahasa tersebut? Mungkin tidak, tapi sepertinya itu bukan tujuan Anda. Apakah Anda mempelajari sesuatu yang baru tentang bahasa utama Anda? Saya sangat yakin akan hal ini. Mengetahui bahasa baru akan mengungkapkan perbedaan di antara keduanya. Dan ini pada gilirannya akan membangkitkan rasa ingin tahu Anda. Anda akan bertanya-tanya mengapa segala sesuatunya dilakukan secara berbeda dalam bahasa baru dan apa fungsinya. Sebagai kesimpulan, saya akan memberikan contoh dari kehidupan. Saya menggunakan satu alat baris perintah yang ditulis dengan Python. Setiap kali saya menginstal alat ini di mesin baru, selalu ada masalah, dan dengan setiap pembaruan, jumlah masalah bertambah. Jika Anda memiliki Go di kotak peralatan Anda, Anda akan segera melihat keuntungannya dalam skenario ini. Go memungkinkan Anda mengkompilasi artefaknya ke dalam biner mandiri. Anda dapat yakin bahwa setelah dikompilasi, biner akan bekerja pada setiap mesin yang Anda kompilasi. Jadi saya mem-porting Python CLI ke Go. Dengan versi baru ini, saya tidak perlu lagi khawatir tentang perubahan runtime atau ketergantungan pihak ketiga. Ini adalah contoh bagus dalam memilih alat yang paling tepat untuk tugas tersebut. Dan untuk bisa memilih, Anda harus menjadi pengembang poliglot.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION