JAVA中的null


NPE问题一直都是程序员都会经历的,今天简单总结一下

  1. Java中的任何引用变量都将null作为默认值,基本数据类型不是(byte,short,int 为0;long 为0L;float为0.0f ;double 为0.0d ; char 为 ‘\u0000’ ;boolean 为false)
  2. null既不是对象也不是一种类型,它仅是一种特殊的值,可以把它付给任何引用类型
  3. 如果使用了带有null值的引用类型变量,instanceof操作将会返回false
System.out.println(nullInteger instanceof Integer);//fasle
       4.你可以使用==或者!=操作来比较null值,但是不能使用其他算法或者逻辑操作,例如小于或者大于。跟SQL不一样,在Java中null==null将返回true
    
System.out.println(null == null);//true

        5.null是Java中的关键字 大小写敏感
        6.null可以赋值给引用变量,你不能将null赋给基本类型变量
Integer nullInteger = null
      
        下面写两个会报空指针的例子:

Integer nullInteger = null;
		int data = nullInteger; 
		System.out.println(data);
上面这个例子就是第6点的错误,包装类在拆箱的时候将null赋值给基本类型变量时候出现NPE
		Map map = new HashMap<>();
	        int[] numbers = {1,2,3,4,5,6,7};
	 
	        for(int i : numbers){ 
	    	   int f =i;
	           int count = (int) map.get(i);
	           map.put(i, count++); // NullPointerException here
	        } 
以上也是将null 赋值给基本类型变量产生NPE


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章