8.3 null值

如果对象没有初始化,那么它的值就是空值null。例如下面的代码,运行后将打印null,也就是直接打印对象stu1,将打印出来null。
public class Student{
    public static void main(String[]args){
        Student stu1=null;
  
        System.out.println(stu1);
    }
}
上面的这两个Stduent对象:stu1和stu2,都是没有分配内存的,它们的值,是一个特殊的值:null。 null代表对象不存在,并没有生成。 这是一件看上去很奇怪的事情:明明它已经有名字了:stu1、stu2,但是却是不存在的。
如果对这些没有分配内存的对象进行存取属性、调用函数的话,那么就会抛出空指针异常(NullPointerException)。所以对象的生成,必须要用new语句,下面打印stu1就不是null了:
public class Student{
    public static void main(String[]args){
        Stduent stu1=new Stduent();
        Stduent stu2=new Stduent();
        System.out.println(stu1);
    }
}
如果对象是null,那么就无法使用此对象的属性和方法,直接使用会导致NullPointerException(空指针异常),如下面的代码所示,第5行代码将导致异常:
public class Student{
    String name;
    public static void main(String[]args){
        Student stu1=null;
        stu1.name="西门吹雪";
    }
}
于是一些对象在使用的时候,可以先测试是否是null,如果是null,那就不用继续了。字符串类型实际上是类,它不是基本变量,所以字符串为空,有两种,一种是内容为空,值是"",一种就是未初始化,值是null,所以测试字符串为空,是这样写的如下面第二行代码所示:
public static void welcome(String name){
    if(name==null || name.equals(""))
        return;
    System.out.println("欢迎你"+name);
}