一 、前言:
java有两种类型,一种是基本类型,一种是引用类型,一般的,业内人士都将null类型忽略,认为null仅仅是一个可以称为任意引用类型的特殊符号;
二、 java中关于null的知识:
1、null是java中的关键字,像public 、static、final 一样区别大小写,不能写成NULL;
2、null是所有引用类型的默认值,包括object类型;
3、null既不是对象也不是一种类型,你可以将其赋予任何引用类型,也可以将null转化成任意类型;
4、null可以赋值给引用变量,不能赋值给八大基本类型(byte,short,int,long,float,double,char, boolean);
5、任何含有null值的包装类在java拆箱生成基本数据类型时会抛出空指针异常;
6、如果使用了带有null的的引用类型变量。instanceof操作会返回false;
拓展:
instanceof用法
7、可以使用静态方法来使用一个值为null的引用类型变量,因为静态方法使用静态类型绑定,不会抛出空指针异常;
8、可以将null传递给方法使用,这时方法可以接收任何引用类型,如 public void print(Object obj) 可以这样调用print(null).编译可以通过,但结果就取决去你的方法了。这个例子中的print方法,不会抛出空指针异常,只是退出,业务逻辑允许的话,推荐使用null安全的方法
public static String method1(String str){
return str;
}
public static void main(String[] args) {
//调用method1方法
System.out.println(method1(null));//打印null
}
9、 可以使用== 或者 != 操作来比较null值,但是不能使用其他算法或者逻辑操作,如大于、小于。与SQL不同,java中的null==null会返回true;
String a=null;
String b=null;
System.out.println(a==b); //true
System.out.println(null!=null);//false
记住上面关于null的知识,可以有效避免你的代码出现空指针 (NullPointerException) 异常;
参考