字符串在使用 equals 时可能出现空指针错误:在进行字符串比较时,常量写在前面

    1. String name = null;
    2. // 比较 name 是否为 "lisi"
    3. "lisi".equals(name); // 正确写法
    4. name.equals("lisi"); // 错误写法


    对象数组通过 new 创建出来,却没有初始化,一样会报空指针错误:

    1. // int、boolean等基本类型的数组,在 new 的时候会赋初始值
    2. int[] ints = new int[10];
    3. for (int anInt : ints) {
    4. System.out.println(anInt); // 0
    5. }
    6. // 对象类型的数组,在 new 的时候不会赋初始值,数组中存放的是 null
    7. // 因此,对象数组在通过 new 开辟空间后,还要对数组进行初始化才能正常访问数组中的对象
    8. Integer[] nums = new Integer[20];
    9. for (Integer num : nums) {
    10. System.out.println(num); // null
    11. }


    List 对象 add null 不报错,但是 addAll 不能添加 null

    1. List<Integer> list = new ArrayList<>(12);
    2. list.add(null);
    3. List<Integer> nums = null;
    4. list.addAll(nums); // addAll() 添加的是集合元素,不允许为 null