JavaRush /Java Blog /Random-ID /Rehat kopi #173. Apa perbedaan antara HashMap dan Hashtab...

Rehat kopi #173. Apa perbedaan antara HashMap dan Hashtable. Cara menemukan dan memperbaiki NullPointerException di Java

Dipublikasikan di grup Random-ID

Apa perbedaan antara HashMap dan Hashtable

Sumber: Medium Hari ini Anda akan mempelajari jawaban atas salah satu pertanyaan wawancara Java paling populer: apa perbedaan antara HashMap dan Hashtable. Rehat kopi #173.  Apa perbedaan antara HashMap dan Hashtable.  Cara menemukan dan memperbaiki NullPointerException di Java - 1Hashtable adalah struktur data untuk menyimpan pasangan kunci dan nilainya, berdasarkan hashing dan implementasi antarmuka Peta. HashMap juga merupakan struktur data untuk menyimpan kunci dan nilai, berdasarkan hashing dan implementasi antarmuka Peta. HashMap memungkinkan Anda dengan cepat mendapatkan nilai berdasarkan kunci. Misalnya nama pengguna dan nomor telepon. Ada perbedaan signifikan antara HashMap dan Hashtable di Java . Ini termasuk keamanan thread, sinkronisasi, dan konsistensi implementasi Peta. Penting untuk mempertimbangkan aspek-aspek berikut ketika memilih tipe struktur data yang akan digunakan dalam program Java Anda: HashMap adalah peta pasangan nilai kunci yang tidak tersinkronisasi dan tidak berurutan. Ini mengizinkan nilai nol dan menggunakan kode hash sebagai pemeriksaan kesetaraan, sedangkan Hashtable adalah peta pasangan nilai kunci yang diurutkan secara tersinkronisasi . Itu tidak mengizinkan nilai nol dan menggunakan metode sama dengan() untuk memeriksa kesetaraan. HashMap memiliki kapasitas default 16, dan Hashtable memiliki kapasitas awal default 11. Nilai objek HashMap diiterasi menggunakan iterator, dan Hashtable adalah satu-satunya kelas selain vektor yang menggunakan enumerator untuk ulangi nilai objek Hashtable. Ingatlah bahwa perbedaan antara HashMap dan Hashtable adalah salah satu pertanyaan paling populer dalam wawancara Java.

Cara menemukan dan memperbaiki NullPointerException di Java

Sumber: Theflashreads Setelah membaca artikel ini, Anda akan lebih mampu menemukan dan memperbaiki kesalahan umum dalam kode Java - NullPointerException. Rehat kopi #173.  Apa perbedaan antara HashMap dan Hashtable.  Cara menemukan dan memperbaiki NullPointerException di Java - 2

Apa itu NullPointerException?

java.lang.NullPointerException adalah pengecualian runtime di Java. Ini terjadi ketika upaya dilakukan untuk mengakses variabel yang tidak menunjuk atau merujuk ke objek apa pun, yaitu nol. Karena NullPointerException adalah pengecualian run-time, maka NullPointerException tidak perlu ditangkap dan ditangani secara eksplisit dalam kode aplikasi.

Dalam keadaan apa NullPointerException terjadi?

NullPointerException terjadi ketika ada upaya untuk mengakses objek yang tidak diinisialisasi. Seperti yang telah disebutkan, ini terjadi ketika referensi objek tidak mengarah ke mana pun dan memiliki nilai nol. Berikut adalah beberapa skenario pengecualian NullPointerException yang paling umum :
  • Akses properti objek null.
  • Melempar null dari metode yang memunculkan pengecualian.
  • Konfigurasi yang salah untuk kerangka injeksi ketergantungan, misalnya: (Musim Semi).
  • Melewati parameter nol ke suatu metode.
  • Memanggil metode pada objek null.
  • Menggunakan sinkronisasi pada objek nol.
  • Akses elemen indeks (misalnya, dalam array) dari objek null.

Contoh NullPointerException

Dalam contoh ini, kami mencoba memanggil metode printLength , yang menggunakan string sebagai parameter dan mencetak panjangnya. Jika nilai string yang diteruskan sebagai parameter adalah null, java.lang.NullPointerException akan dilempar .
public class NullPointerExceptionExample {

    private static void printLength(String str) {

        System.out.println(str.length());

    }



    public static void main(String args[]) {

        String nullString = null;

        printLength(nullString);

    }

}





Exception in thread "main" java.lang.NullPointerException

    at NullPointerExceptionExample.printLength(NullPointerExceptionExample.java:3)

    at NullPointerExceptionExample.main(NullPointerExceptionExample.java:8)

Bagaimana menghindari pelemparan NullPointerException

NullPointerException dapat dihindari dengan menggunakan pemeriksaan dan metode pencegahan berikut:
  • Pastikan objek diinisialisasi dengan benar dengan menambahkan tanda centang nol sebelum mengakses metode atau propertinya.

  • Gunakan Apache Commons StringUtils untuk operasi string: misalnya, StringUtils.isNotEmpty() untuk memeriksa apakah string kosong sebelum menggunakannya lebih lanjut.

    import org.apache.commons.lang3.StringUtils;
    
    
    
    public class NullPointerExceptionExample {
    
        private static void printLength(String str) {
    
            if (StringUtils.isNotEmpty(str)) {
    
                System.out.println(str.length());
    
            } else {
    
                System.out.println("This time there is no NullPointerException");
    
            }
    
        }
    
    
    
        public static void main(String args[]) {
    
            String nullString = null;
    
            printLength(nullString);
    
        }
    
    }
  • Gunakan primitif daripada objek bila memungkinkan, karena mereka tidak boleh memiliki referensi nol. Misalnya, gunakan int sebagai ganti Integer dan boolean sebagai ganti Boolean .

  • Pastikan Anda memeriksa ulang kode Anda. Hal ini akan mengurangi kemungkinan NullPointerException dilempar .

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION