JavaRush /Blog Java /Random-MS /Coffee break #173. Apakah perbezaan antara HashMap dan Ha...

Coffee break #173. Apakah perbezaan antara HashMap dan Hashtable. Bagaimana untuk mencari dan membetulkan NullPointerException dalam Java

Diterbitkan dalam kumpulan

Apakah perbezaan antara HashMap dan Hashtable

Sumber: Medium Hari ini anda akan mempelajari jawapan kepada salah satu soalan wawancara Java yang paling popular: apakah perbezaan antara HashMap dan Hashtable. Coffee break #173.  Apakah perbezaan antara HashMap dan Hashtable.  Bagaimana untuk mencari dan membetulkan NullPointerException dalam Java - 1Hashtable ialah struktur data untuk menyimpan pasangan kunci dan nilainya, berdasarkan pencincangan dan pelaksanaan antara muka Peta. HashMap juga merupakan struktur data untuk menyimpan kunci dan nilai, berdasarkan pencincangan dan pelaksanaan antara muka Peta. HashMap membolehkan anda mendapatkan nilai mengikut kunci dengan cepat. Contohnya, nama pengguna dan nombor telefon. Terdapat perbezaan yang ketara antara HashMap dan Hashtable dalam Java . Ini termasuk keselamatan benang, penyegerakan dan ketekalan pelaksanaan Peta. Adalah penting untuk mempertimbangkan aspek ini apabila memilih jenis struktur data untuk digunakan dalam program Java anda: HashMap ialah peta yang tidak disegerakkan dan tidak tertib bagi pasangan nilai kunci. Ia membenarkan nilai nol dan menggunakan kod cincang sebagai semakan kesaksamaan, manakala Hashtable ialah peta tersusun yang disegerakkan bagi pasangan nilai kunci. Ia tidak membenarkan nilai nol dan menggunakan kaedah equals() untuk menyemak kesamaan. HashMap mempunyai kapasiti lalai 16, dan Hashtable mempunyai kapasiti awal lalai sebanyak 11. Nilai objek HashMap diulang menggunakan iterator, dan Hashtable ialah satu-satunya kelas selain daripada vektor yang menggunakan enumerator untuk lelaran ke atas nilai objek Hashtable. Ingat bahawa perbezaan antara HashMap dan Hashtable adalah salah satu soalan paling popular dalam temu bual Java.

Bagaimana untuk mencari dan membetulkan NullPointerException dalam Java

Sumber: Theflashreads Selepas membaca artikel ini, anda akan lebih dapat mencari dan membetulkan ralat biasa dalam kod Java - NullPointerException. Coffee break #173.  Apakah perbezaan antara HashMap dan Hashtable.  Bagaimana untuk mencari dan membetulkan NullPointerException dalam Java - 2

Apakah itu NullPointerException?

java.lang.NullPointerException ialah pengecualian masa jalan dalam Java. Ia berlaku apabila percubaan dibuat untuk mengakses pembolehubah yang tidak menunjuk atau merujuk kepada mana-mana objek, iaitu, ia adalah batal. Oleh kerana NullPointerException ialah pengecualian masa larian, ia tidak perlu ditangkap dan dikendalikan secara eksplisit dalam kod aplikasi.

Dalam keadaan apakah NullPointerException berlaku?

NullPointerException berlaku apabila percubaan dibuat untuk mengakses objek yang tidak dimulakan. Seperti yang telah disebutkan, ini berlaku apabila rujukan objek tidak ke mana-mana dan mempunyai nilai nol. Berikut ialah beberapa senario pengecualian NullPointerException yang paling biasa :
  • Akses sifat objek nol.
  • Melempar nol daripada kaedah yang membuang pengecualian.
  • Konfigurasi yang salah untuk rangka kerja suntikan pergantungan, contohnya: (Musim bunga).
  • Melewati parameter nol kepada kaedah.
  • Kaedah panggilan pada objek nol.
  • Menggunakan disegerakkan pada objek nol.
  • Akses elemen indeks (contohnya, dalam tatasusunan) objek nol.

Contoh NullPointerException

Dalam contoh ini, kami cuba memanggil kaedah printLength , yang mengambil rentetan sebagai parameter dan mencetak panjangnya. Jika nilai rentetan yang dihantar sebagai parameter adalah nol, java.lang.NullPointerException akan dilemparkan .
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 untuk mengelakkan membuang NullPointerException

NullPointerException boleh dielakkan dengan menggunakan semakan dan kaedah pencegahan berikut:
  • Pastikan objek dimulakan dengan betul dengan menambahkan semakan nol sebelum mengakses kaedah atau sifatnya.

  • Gunakan Apache Commons StringUtils untuk operasi rentetan: contohnya, StringUtils.isNotEmpty() untuk menyemak sama ada rentetan 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 dan bukannya objek apabila boleh, kerana ia tidak boleh mempunyai rujukan nol. Sebagai contoh, gunakan int bukannya Integer dan boolean bukannya Boolean .

  • Pastikan anda menyemak semula kod anda. Ini akan mengurangkan kemungkinan NullPointerException dilemparkan .

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