35 + Java 8 Pertanyaan dan Jawaban Wawancara (2024)
Baik itu seorang teknisi atau profesional lainnya, wawancara selalu memacu adrenalin karena rasa gugup. Namun, untuk menonjol dari yang lain, penting untuk memoles keterampilan Anda dan bertaruh pada kemampuan Anda. Apalagi memiliki tangan yang sering ditanyakan Java 8 pertanyaan dan jawaban wawancara bisa jadi lebih cerdas bagi Anda.
Oleh karena itu, gali lebih dalam pertanyaan wawancara Java 8 ini untuk berpengalaman dan pemula agar dapat menguasai wawancara Anda yang akan datang.
Java 8 Pertanyaan Wawancara untuk Mahasiswa Baru dan Pengalaman
1) Java 8 termasuk dalam paradigma pemrograman yang mana?
Java 8 jatuh dalam paradigma pemrograman berikut:
- Bahasa pemrograman berorientasi objek atau kelas.
- Bahasa pemrograman fungsional.
- Bahasa pemrograman prosedural yang ditentukan.
- Bahasa pemrograman logis.
2) Mengapa seseorang harus menggunakan kelas Opsional?
Kelas opsional adalah kelas kontainer yang baru diperkenalkan yang berguna dalam mendemonstrasikan nilai opsional yang ada atau tidak ada. Keuntungan utamanya adalah menghindari pemeriksaan null & void dan memfasilitasi metode yang berguna dalam memeriksa keberadaan nilai untuk variabel tertentu.
3) Sebutkan beberapa fitur terbaru yang diperkenalkan Java 8.
Di bawah ini adalah fitur-fitur terbaru yang diperkenalkan pada Java 8:
- Ekspresi Lambda: Ini adalah Java fungsi yang dapat Anda bagikan atau rujuk sebagai objek.
- Interferensi metode: Ia menggunakan fungsi sebagai kriteria untuk mengimplementasikan suatu metode.
- Interferensi Fungsional: Setiap interferensi fungsional dikaitkan dengan metode abstrak tunggal yang dikenal sebagai metode fungsional.
- Metode Bawaan: Hal ini berguna dalam mengimplementasikan metode dalam antarmuka yang membantu mengaktifkan potensi 'evolusi antarmuka'.
- API Tanggal Waktu: Ini adalah versi API waktu java yang ditingkatkan namun terinspirasi untuk mengatasi kekurangan versi terakhir.
- Streaming API disebut sebagai lapisan abstrak, yang membantu menyalurkan pemrosesan data.
- Opsional: Kelas wrapper berguna dalam memeriksa nilai null dan memproses data selanjutnya.
- JavaSkrip dan Mesin Nashorn: Ini adalah versi perbaikan dari JavaMesin Skrip, yang berguna dalam mengaktifkan fungsinya di Java, menggantikan Badak.
4) Tentukan keuntungan menggunakan Java 8
Berikut adalah beberapa manfaat menggunakan Java 8:
- Ini membantu dalam membuat aplikasi lebih cepat dan mudah.
- Ini memberikan suasana yang sangat stabil bagi para pengembang.
- Kode yang ringkas, dapat digunakan kembali, dan mudah dipahami.
- Dukungan yang lebih baik dan efektif.
- Mudah untuk porting di berbagai sistem operasi.
- Kode boilerplate minimum.
5) Apa yang dimaksud dengan koleksi, dan apa bedanya dengan aliran?
Koleksi adalah database dalam memori yang mencatat semua nilai sesuai dengan struktur data saat ini. Jadi, sebelum menambahkannya ke koleksi, penting untuk menghitung masing-masing koleksi. Sedangkan aliran adalah struktur data yang tetap secara visual tempat kita dapat menghitung elemen sesuai kebutuhan kita.
6) Apa ekspresi Lambada?
Ekspresi Lambada adalah sejenis fungsi yang tidak memiliki nama dan terkadang disebut sebagai fungsi anonim karena tidak memiliki jenis informasinya sendiri. Anda dapat menggunakannya sesuai kebutuhan Anda, dan ini sangat berguna dalam mengulang, memfilter, dan mengekstrak data apa pun dari koleksi.
Contoh:
import java. util.Arrays; import java.util.List; import java.util.stream.Collectors; public class LambdaExpressionExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave"); List<String> filteredNames = names.stream() .filter(name -> name.startsWith("C")) .map(name -> name.toUpperCase()) .collect(Collectors.toList()); System.out.println(filteredNames); } }
Keluaran:
Charlie
7) Tentukan perpipaan aliran
Stream pipelining adalah metode pengelompokan operasi yang berbeda secara bersamaan. Anda dapat mencapainya dengan mengategorikan operasi alirannya menjadi dua bagian. Operasi perantara dan terminal.
Setiap kali operasi perantara dilakukan, operasi tersebut memantulkan kembali sebuah instance ke pipeline aliran. Oleh karena itu, setiap pengguna dapat mengatur operasi perantara dalam jumlah yang tidak rasional untuk menyederhanakan data dan pada akhirnya membentuk jalur pemrosesan.
Selain itu, untuk menghentikan jaringan pipa, diperlukan operasi terminal di akhir proses.
8) Apa yang dimaksud dengan predikat dan konsumen Java 8?
Predikat adalah antarmuka fungsional yang biasanya menerima argumen dan mengambil nilai Boolean. Anda dapat menggunakannya untuk menerapkan filter pada kumpulan objek.
Di sisi lain, konsumen disebut sebagai antarmuka fungsional bawaan yang terdapat di dalamnya Javapaket .util.function. Anda dapat menggunakannya untuk menggunakan objek apa pun, dan ia mengambil nilai masukan dan tidak memberikan apa pun.
9) Mengapa metode peek() digunakan di Java 8?
Metode peek() membantu mendukung debugging, di mana seseorang ingin memperhatikan elemen-elemen yang cenderung mengalir dari titik tertentu dalam pipa. Ini adalah representasi dari pengamatan kami tentang bagaimana setiap elemen lewat.
sintaks: public Object peek()
10) Apa yang menjadikan Anda kandidat ideal untuk Java peran pengembang?
Berikut adalah beberapa kualitas penting yang dapat menjadikan Anda kandidat ideal untuk posisi tersebut Java peran pengembang:
- Anda harus memiliki kemampuan untuk menulis kode yang jelas, mudah dipahami, dan efisien.
- Pemahaman mendalam tentang pola dan konsep “OOP atau pemrograman berorientasi objek. "
- Pengetahuan yang baik tentang berbagai pola arsitektur dan desain.
- Keakraban dengan Java pola konkurensi.
- Pengalaman dan pengetahuan bekerja dengan berbagai kerangka aplikasi web seperti Spark dan bermain.
- Pengetahuan mendasar tentang Java Mesin Virtual atau JVM, kekurangannya, solusinya, dll.
- Pengalaman yang baik dalam menggunakan database tertanam dan eksternal.
11) Jelaskan 'Antarmuka Fungsional'.
Antarmuka yang hanya memiliki satu abstrak disebut antarmuka fungsional. Ia juga dikenal sebagai Metode Abstrak Tunggal atau SAM. Namun, anotasi @FunctionalInterface bersifat opsional dan dapat digunakan meskipun tidak ada. Itu meluas ke antarmuka lain jika tidak memiliki abstrak apa pun.
12) Mengapa metode Statis diperlukan Java 8?
Referensi metode statis disebut sebagai metode utilitas atau pembantu, yang dihubungkan dengan antarmuka. Ini juga merupakan kelas yang tidak ditautkan ke objek apa pun.
Berikut alasan penggunaan metode Statis di Java:
- Berguna untuk memelihara dan memperluas API.
- Memerlukan pembagian tanggung jawab yang jelas dan ringkas, dan Anda tidak perlu memiliki satu kelas utilitas untuk memiliki koleksi utilitas.
- Berguna untuk menjaga semua antarmuka dalam antarmuka yang umum, bukan antarmuka yang spesifik.
13) Apa kelebihan Nashorn?
Nashorn adalah yang paling maju dan baru JavaNaskah mesin pengolah diperkenalkan pada Java 8. Sebelumnya didasarkan pada Mozilla Rhino. Ini memberikan peningkatan kepatuhan terhadap ECMA JavaScript. Lebih cepat dari versi sebelumnya.
14) Apa perbedaan Collection API dan Stream API?
Berikut adalah beberapa perbedaan penting antara Collection API dan Stream API
API Koleksi | Streaming API |
---|---|
Koleksi API pertama kali digunakan di Java 1.2 | Stream API pertama kali diperkenalkan pada Java JIKA 8. |
Anda dapat menggunakannya untuk menyimpan data tanpa batas. | Anda dapat menggunakannya untuk menghitung data tanpa batas. |
Collection API memungkinkan Anda menggunakan Iterator dan Spilterator untuk mengulangi data. | Stream API memungkinkan Anda menggunakan Iterator dan Spilterator untuk mengulangi data. |
Koleksi API mudah diakses. | API in-stream, tidak ada cara langsung untuk menjangkau elemen tertentu. |
Ini juga memberikan kemudahan untuk mengolahnya sesuai kebutuhan Anda. | Stream API hanya dapat diproses sekali. |
15) Jelaskan PermGenSpace dan MetaSpace.
PermGen atau Permanent Generation Space adalah jenis ruang heap unik yang digunakan untuk melacak metadata tersimpan yang kini dihapus di Java 8.
Dengan versi baru ini, penyimpanan metadata akan dilakukan dalam memori serupa yang dikenal sebagai “MetaSpace.” Ini tidak dapat dipindahtangankan Java Memori tumpukan dan merupakan versi perbaikan PermGen dalam aspek penyetelan otomatis, pengumpulan sampah, dll.
16) Bagaimana Antarmuka Fungsional dibuat Java 8?
Anda dapat menggunakan ekspresi lambda untuk mengimplementasikan metode abstrak antarmuka fungsional Java 8. Di bawah ini adalah contoh codingnya:
Example
import java.util.function.Consumer; public class FunctionalInterfaceExample { public static void main(String[] args) { Consumer<String> printer = System.out::println; printer.accept("Hello, world!"); } }
Keluaran:
Hello, world!
17) Apa perbedaan dan persamaan Fungsi dan Predikat pada Java 8?
Berikut perbedaan Fungsi dan Predikat pada Java 8:
- Fungsi berguna dalam transformasi, sedangkan predikat dapat digunakan untuk menguji kondisi apa pun.
- Fungsi dapat menerima argumen dan memberikan hasil, sedangkan predikat juga dapat menerima argumen tetapi hanya memberikan nilai Boolean.
- Fungsi dilambangkan dengan , dan Predikat dilambangkan dengan saja , dengan T adalah tipe fungsinya, dan R adalah hasilnya.
Berikut persamaan Fungsi dan Predikat:
- Baik fungsi maupun predikat adalah antarmuka fungsional.
- Baik fungsi maupun predikat merupakan fungsi argumen tunggal.
18) Jelaskan perbedaan antara lewati(panjang) dan batas(panjang) dengan menggunakan sebuah contoh.
Lompatan (panjang) adalah operasi perantara yang mengambil elemen sisa setelah menghilangkan n elemen awal dari aliran tertentu.
Contoh:
import java.util.Arrays; import java.util.List; public class SkipExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave", "Eve"); // Create a stream from the names list names.stream() // Skip the first two elements of the stream .skip(2) // Print the remaining elements to the console .forEach(System.out::println); } }
Keluaran:
Charlie Dave Eve
Batas (panjang) mengambil aliran elemen dengan ukuran tertentu
Contoh:
import java.util.Arrays; import java.util.List; public class LimitExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave", "Eve"); // Create a stream from the names list names.stream() // Limit the stream to the first three elements .limit(3) // Print the elements to the console .forEach(System.out::println); } }
Keluaran:
AliceBob Charlie
19) Situasi mana yang paling cocok untuk menggunakan stream API Java 8?
Anda dapat menggunakan API aliran di Java 8. Diperlukan operasi-operasi di bawah ini:
- Anda dapat melakukan pemrosesan paralel.
- Untuk menjalankan operasi yang malas
- Untuk melakukan operasi basis data
- Gunakan untuk iterasi internal.
- Untuk menulis pemrograman gaya fungsional
- Anda dapat menggunakannya untuk menggunakan operasi pipa.
20) Apa fungsi Type Inference?
Type Inference membantu kompiler dalam mengidentifikasi atau mengenali jenis argumen hanya dengan melihat gambaran umum deklarasi dan pemanggilan metode yang sesuai.
21) Manakah cara termudah untuk mengidentifikasi dan menghilangkan elemen duplikat dari daftar Java 8?
Cara termudah untuk mengidentifikasi dan menghapus elemen duplikat adalah dengan menggunakan operasi aliran dan melakukan pengumpulan, diikuti dengan penggunaan metode Collections.toSet().
22) Apa pedoman Antarmuka Fungsional?
Di bawah ini adalah pedoman untuk antarmuka fungsional yang paling banyak ditanyakan Java 8 pertanyaan pemrograman:
- Seharusnya hanya memiliki satu metode abstrak.
- Anda dapat memiliki sebanyak mungkin metode default karena tidak abstrak, dan implementasi diberikan sebelumnya dengan cara yang sama.
- Metode abstrak, elemen utama dari metode publik Java.lang, dikenal dalam antarmuka fungsional. Objek masih dianggap sebagai antarmuka yang berguna.
Catatan: Penjelasannya adalah setiap kelas implementasi untuk antarmuka ini dapat memiliki implementasi untuk metode abstrak ini yang ditentukan oleh kelas implementasi itu sendiri atau diambil dari superkelas.
23) Bedakan antara spliterator dan Iterator.
Berikut beberapa perbedaan antara spliterator dan iterator:
Pemisah | Pengulangan |
---|---|
Itu diperkenalkan di Java 1.2. | Itu diperkenalkan di Java 1.8. |
Itu hanya mengulangi semua elemen secara terpisah. | Ini melintasi semua elemen secara terpisah maupun secara massal. |
Ini bertindak sebagai iterator untuk koleksi API yang lengkap. | Ini bertindak sebagai iterator untuk aliran dan koleksi API. |
Ini tidak akan mendukung pemrograman paralel. | Itu mendukung pemrograman paralel. |
24) Bagaimana Anda bisa memanggil metode default antarmuka di kelas?
Kata kunci default, yang ada di awal tanda tangan metode, digunakan untuk menunjuk deklarasi metode di antarmuka sebagai metode default. Anda dapat melewati pengubah publik karena setiap deklarasi metode dalam antarmuka, termasuk metode default, secara otomatis bersifat publik.
25) Tentukan metode default. Kapan Anda bisa menggunakannya?
Metode default ada di antarmuka, dan itu mencakup implementasi. Metode ini berguna dalam menambahkan fungsionalitas baru ke antarmuka tertentu sambil menjaga kompatibilitas mundur bersama dengan kelas-kelasnya yang sudah diimplementasikan dalam sebuah antarmuka.
26) Bagaimana Aliran dibuat Java, dan apakah ini termasuk pertanyaan wawancara aliran java 8 yang paling banyak ditanyakan?
Streaming di Java menggambarkan urutan objek dari sumber tertentu, seperti koleksi, yang akan mendukung operasi agregat. Anda dapat memanfaatkannya untuk mengumpulkan, memfilter, mencetak, dan mengubah satu struktur data ke struktur data lainnya.
Berikut adalah contoh cara membuat aliran Java:
import java.util.stream.Stream; public class StreamExample { public static void main(String[] args) { Stream<String> stream = Stream.of("Alice", "Bob", "Charlie", "Dave", "Eve"); stream.forEach(System.out::println); } }
Keluaran:
Alice Bob Charlie Dave Eve
27) Apa yang dimaksud dengan operasi aliran Map dan FlatMap?
Map dan FlatMap dianggap sebagai operasi aliran dan aliran antara yang menerima suatu fungsi. Operasi ini juga membantu dalam penerapan fungsi yang diberikan ke elemen lainnya.
28) Mengapa kita perlu mengubah Java bahasa pemrograman sering?
Kita harus mengubah Java bahasa pemrograman sering karena alasan di bawah ini:
- Anda dapat menggunakan fitur Pemrograman fungsional.
- Untuk memanfaatkan teknologi terbaru CPU Multi-Core secara efektif.
29) Sebutkan beberapa antarmuka fungsional yang digunakan Java 8.
Di bawah ini adalah beberapa antarmuka fungsional yang digunakan Java 8:
- BinerOperator
- Konsumen
- fungsi
- Pemasok
- unaryOperator
- BiFungsi
- Predikat
30) Apa saja kelas API utama untuk waktu dan tanggal?
Di bawah ini tercantum kelas API utama untuk waktu dan tanggal yang digunakan Java 8:
- Waktu lokal
- WaktuTanggal Lokal
- Tanggal Lokal
31) Berikan struktur/sintaksis dasar ekspresi Lambda.
Struktur dasar/sintaks ekspresi Lambda adalah:
(arugument - list) - > {body}
Di sini,
- Argumen – daftar: Anda bisa tetap mengisinya atau mengosongkannya.
- Tanda panah: Ini berguna dalam menghubungkan ekspresi tubuh dan argumen – daftar.
- Tubuh: Ini terdiri dari pernyataan dan ekspresi untuk ekspresi lambda.
32) Apa ciri-ciri utama Aliran?
Di bawah ini adalah karakteristik utama Stream:
- Perpipaan
- sumber
- Agregat Operations
- Urutan Elemen
- Iterasi Otomatis
33) Operasi perantara apa yang paling umum?
Beberapa jenis ekspresi perantara yang paling umum adalah:
- Berbeda ()
- Lewati (panjang n)
- Filter (Predikat)
- Batas (panjang n)
- Peta (Fungsi)
34) Jenis operasi Terminal apa yang paling umum?
Di bawah ini adalah jenis operasi terminal yang paling umum:
- Menghitung
- Menurunkan
- Min
- Semua Pertandingan
- max
- Pertandingan Apa Saja
- Ke Array
35) Apa yang dimaksud dengan referensi metode di Java 8?
Referensi metode di Java 8 adalah cara merujuk pada antarmuka fungsional. Ini dikenal sebagai bentuk ekspresi lambda yang lebih mudah dan efisien. Saat Anda menggunakan ekspresi lambda untuk merujuk suatu metode, Anda dapat menggantinya dengan referensi metode.
36) Apa perbedaan iterasi Internal dan Eksternal?
Berikut adalah perbedaan antara iterasi internal dan eksternal:
Iterasi Internal | Iterasi Eksternal |
---|---|
Ia juga dikenal sebagai iterator pasif atau implisit. | Ia juga dikenal sebagai iterator aktif atau eksplisit. |
Itu dilakukan secara internal pada berbagai objek. | Itu dibawa secara eksternal pada berbagai objek. |
Ini digunakan dalam pemrograman fungsional. | Ini digunakan dalam pemrograman berorientasi objek. |
Ini menyebabkan kesalahan yang sangat sedikit. Namun, coding adalah suatu keharusan untuk itu. | Ini menyebabkan lebih banyak kesalahan. Namun, pengkodean tidak diperlukan. |
37) Apakah inferensi tipe telah digunakan dalam versi sebelumnya Java?
Java memperkenalkan interferensi tipe di Java 5 tetapi dengan akses yang sangat terbatas. Namun selama bertahun-tahun, kemungkinan interferensi tipe telah meningkat, dan ini berada dalam kondisi terbaiknya Java 8.
38) Tuliskan a Java 8 program yang dapat menemukan jumlah minimum dan maksimum Aliran.
import java.util.Arrays; import java.util.stream.IntStream; public class MinMaxExample { public static void main(String[] args) { int[] numbers = {9, 3, 8, 1, 5, 7, 2, 6, 4}; int min = IntStream.of(numbers).min().getAsInt(); int max = IntStream.of(numbers).max().getAsInt(); System.out.println("Minimum number: " + min); System.out.println("Maximum number: " + max); } }
Keluaran:
Minimum number: 1 Maximum number: 9
39) Bagaimana cara menggabungkan beberapa String melalui Kelas StringJoiner?
StringJoiner membantu menggabungkan satu atau lebih String, dan hal ini dapat dilakukan melalui penggabung atau pemisah tertentu. Misalnya, seseorang dapat menggabungkan sejumlah string dengan memisahkannya dengan koma (,).
Untuk membuat string CSV, seseorang dapat membuat path lengkap untuk direktori tertentu di Linux yang dapat dilakukan dengan menggabungkan String menggunakan bantuan garis miring “/.”
40) Apa alternatif terbaik untuk ekspresi lambda di Java 8?
Secara umum, kami menggunakan ekspresi lambda untuk membuat metode anonim yang membantu mendapatkan hasil yang diinginkan. Namun, ada kalanya ekspresi lambda gagal berfungsi dan hanya menggunakan metode yang sudah ada.
Jadi, untuk menghindari hal ini, Anda dapat menggunakan referensi metode yang dapat membantu dalam mendapatkan output yang diinginkan. Referensi metode digambarkan menggunakan simbol: (titik dua ganda).