JavaRush /Java Blog /Random-ID /Rehat kopi #167. Hal-hal yang perlu ditinjau sebelum wawa...

Rehat kopi #167. Hal-hal yang perlu ditinjau sebelum wawancara Java. Apa perbedaan antara enum dan iterator di Jawa?

Dipublikasikan di grup Random-ID

Hal-hal yang perlu ditinjau sebelum wawancara Java

Sumber: Medium Pada artikel ini, Anda akan menemukan 17 tips dari pengembang berpengalaman yang akan membantu Anda dalam wawancara Java. Rehat kopi #167.  Hal-hal yang perlu ditinjau sebelum wawancara Java.  Apa perbedaan antara enum dan iterator di Jawa?  - 1Saya telah bekerja di industri TI selama lebih dari 20 tahun dan menghabiskan sebagian besar waktunya bekerja dengan Java. Selain itu, saya memperoleh banyak pengalaman mewawancarai pengembang Java. Meskipun bahasa Java terus berkembang, konsep intinya tetap sama. Berikut beberapa tip yang ingin saya bagikan kepada calon pengembang sebelum mereka melakukan wawancara. Jika Anda mengulanginya, ini akan menyelamatkan Anda dari kesalahan serius.
  1. Kelas Object berada di akar hierarki kelas Java. Semua kelas Java menelusuri kembali ke Object . Bahkan jika suatu kelas tidak secara eksplisit memperluas kelas apa pun, ia memperluas Object . Namun, suatu kelas bebas untuk memperluas Object secara eksplisit.

  2. Di Java, Anda hanya dapat memperluas satu kelas (pewarisan ganda tidak diperbolehkan karena ambiguitas). Namun, sebuah kelas dapat mengimplementasikan sejumlah antarmuka secara bersamaan.

  3. Sebuah antarmuka memperluas antarmuka lain (sebagai lawan dari implementasi).

  4. Ada empat pengubah akses di Java: publik (tersedia untuk semua orang), dilindungi (hanya tersedia untuk subkelas), pribadi (hanya tersedia dalam satu kelas), default (tersedia dalam satu paket). Perlu dicatat bahwa subkelas dari kelas yang sama dapat berada dalam paket yang berbeda. Kelas induk dan subkelas tidak harus menjadi bagian dari paket yang sama.

  5. String kelas tidak dapat diubah. Kekekalan berarti bahwa kelas String itu sendiri tidak menyediakan metode apa pun untuk mengganti nilai dalam referensi String . Jika Anda ingin mengganti nilai referensi string, Anda harus menetapkan nilai secara eksplisit menggunakan operator = . Bandingkan ini dengan kelas StringBuffer atau StringBuilder , yang memiliki metode seperti append sehingga Anda tidak perlu menggunakan operator = di sana .

  6. ConcurrentHashMap lebih efisien daripada Hashtable . ConcurrentHashMap beroperasi pada segmen struktur data yang mendasarinya, di mana operasi tulis hanya mengunci segmen tertentu (terlepas dari segmen mana kunci tersebut berada). Namun, di Hashtable seluruh struktur data akan dikunci.

  7. ConcurrentHashMap lebih lambat dari HashMap karena HashMap tidak menerapkan keamanan thread. HashMap dapat memunculkan ConcurrentModificationException jika thread mengulangi HashMap dan thread lain mencoba mengubah HashMap yang sama . ConcurrentHashMap tidak akan memberikan pengecualian di sini.

  8. Bagaimana cara menerapkan kesetaraan dua objek dari kelas yang sama yang telah Anda tetapkan? Jawaban: Hal ini dapat dilakukan dengan mengganti metode hashcode() .

  9. Apa hasil default dari metode toString() ? Jawaban: Ini adalah gabungan dari nama kelas, tanda @ dan nilai kode hash() .

  10. Bagaimana cara menerapkan polimorfisme di Jawa? Salah satu cara untuk melakukan ini adalah dengan membebani metode secara berlebihan. Cara lain adalah dengan mengganti metode tersebut.

  11. Bagaimana Anda memanggil konstruktor superclass dari kelas anak? Jawaban: Ini dapat dilakukan dengan menggunakan kata kunci super() . Metode super() tanpa argumen selalu dipanggil, meskipun tidak ditentukan secara eksplisit. Metode super() dengan argumen harus ditentukan secara eksplisit. Panggilan ke super() (dengan atau tanpa argumen) harus selalu menjadi baris pertama di konstruktor kelas anak jika diperlukan untuk dipanggil.

  12. Apa pengecualian yang dicentang dan tidak dicentang? Jawaban: Pengecualian yang dicentang adalah pengecualian yang harus dideklarasikan atau ditangkap dalam metode yang diharapkan akan dilempar. Pengecualian yang tidak dicentang tidak memiliki batasan ini. java.io.IOException adalah contoh pengecualian yang dicentang. Pengecualian yang tidak dicentang berasal dari kelas RunTimeException .

  13. Kelas akar dari hierarki pengecualian adalah Throwable (yang pada gilirannya secara implisit memperluas Object ). Pengecualian dan Kesalahan berasal dari Throwable .

  14. Sejak Java 8, metode dapat diimplementasikan dalam sebuah antarmuka. Metode default dan metode statis dapat memiliki implementasi.

  15. Kelas yang memenuhi syarat sebagai abstrak tidak dapat dipakai. Setiap kelas yang tidak menyediakan isi untuk metode apa pun harus dinyatakan abstrak. Pengembang dapat mendeklarasikan suatu kelas menjadi abstrak meskipun semua metode memiliki isi - namun, hal ini sangat tidak disarankan karena dalam kasus ini kelas tidak dapat dipakai.

  16. Kelas terakhir tidak dapat diperpanjang. Variabel akhir tidak dapat diberi nilai lain. Metode terakhir tidak dapat dikesampingkan.

  17. Kata kunci apa yang diperlukan dalam konstruksi coba-tangkap-akhirnya ? Ini bisa berupa try-catch , try-finally , atau ketiganya. Dalam hal ini, catch bukanlah kata kunci yang wajib.

Apa perbedaan antara enum dan iterator di Jawa?

Sumber: Rrtutors Posting ini membahas perbedaan antara enumerasi dan iterasi di Java. Paket Java.util menyediakan dua antarmuka untuk melintasi elemen objek Koleksi : Enumeration dan Iterator . Meskipun keduanya melewati objek Collection , ada beberapa perbedaan di antara keduanya.

Perbedaan antara enum dan iterator

  • Waktu ditambahkan ke JDK: Mereka diperkenalkan pada waktu yang berbeda. Enum diperkenalkan di JDK 1.0, sedangkan iterator diperkenalkan di JDK 1.2.

  • Menghapus elemen: Inilah perbedaan utama antara keduanya. Di antarmuka Iterator , kita dapat menghapus elemen saat melakukan iterasi pada objek Collection , sedangkan kita tidak dapat mengubahnya saat melakukan iterasi pada objek Collection menggunakan Enumeration . Hal ini karena antarmuka Iterator memiliki metode hapus() , namun antarmuka Enumerasi tidak.

  • Tipe operasi: Iterator memiliki tipe operasi cepat-gagal, dan enumerasi memiliki tipe operasi aman-gagal. Akibatnya, Iterator memunculkan ConcurrentModificationException saat koleksi diubah selama iterasi kecuali metode hapus() miliknya sendiri digunakan , sedangkan Enumeration tidak memunculkan pengecualian apa pun saat koleksi diubah selama iterasi.

Contoh Enumerasi dan Iterator di Java

Contoh enumerasi

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Enumeration;

import java.util.List;

import java.util.Vector;

public class Enumeration_Example {

      public static void main(String[] args) {

                  List laptoplist = new ArrayList(Arrays.asList( new String[] {"Samsung", "Lenovo", "Apple", "HP"}));

            Vector vectali = new Vector(laptoplist);

            delete(vectali, "Samsung");

        }

        private static void delete(Vector vectali, String laptop) {

            Enumeration lapi = vectali.elements();

            while (lapi.hasMoreElements()) {

              String s = (String) lapi.nextElement();

              if (s.equals(laptop)) {

                  vectali.remove(laptop);

              }

            }

            System.out.println("The Laptop brands includes:");

            lapi = vectali.elements();

            while (lapi.hasMoreElements()) {

              System.out.println(lapi.nextElement());

            }

      }

}
Kesimpulan:
Merk Laptop tersebut antara lain : HP Apple Lenovo

Contoh iterator:

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

import java.util.Vector;

public class Iterator_example {

      public static void main(String[] args) {

                  List laptoplist = new ArrayList(Arrays.asList( new String[] {"Samsung", "Lenovo", "HP", "Apple"}));

            Vector vectali = new Vector(laptoplist);

            delete(vectali, "HP");

        }

        private static void delete(Vector vectali, String name) {

            Iterator a = vectali.iterator();

            while (a.hasNext()) {

              String s = (String) a.next();

              if (s.equals(name)) {

                  a.remove();

              }

            }

            // Display the names

            System.out.println("The laptop brand includes:");

            a = vectali.iterator();

            while (a.hasNext()) {

              System.out.println(a.next());

            }

      }

}
Kesimpulan:
Merek laptopnya antara lain: Samsung Lenovo Apple
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION