new
是 Java 中用于创建对象的关键字。它的作用是在内存中为对象分配空间并初始化对象。当你创建一个对象时,new
会执行以下几个关键的操作:
-
内存分配:
new
会在堆内存中为对象分配足够的内存空间,以便存储对象的数据。 -
初始化:
new
会调用对象的构造方法(通常是类的构造方法),这个构造方法用于初始化对象的各个属性和状态。如果你没有自定义构造方法,Java 会提供一个默认构造方法。 -
返回引用:
new
返回一个指向新创建对象的引用,你可以使用这个引用来操作和访问对象的属性和方法。
如果你不使用 new
来创建对象,那么对象在内存中不会被正确地初始化,对象的引用为 null
,这就是为什么会出现空指针异常(NullPointerException)的原因。空指针异常通常发生在尝试调用或访问一个空引用的属性或方法时,因为该引用没有指向任何有效的对象。
例如,以下代码会导致空指针异常,因为 myList
没有被实例化(没有使用 new
创建对象):
List<String> myList; // myList 引用为 null
myList.add("Hello"); // 尝试调用 add 方法,会导致空指针异常
为了避免空指针异常,你应该使用 new
来实例化对象,确保对象在内存中正确初始化并分配了空间。例如:
List<String> myList = new ArrayList<>(); // 使用 new 创建 ArrayList 对象
myList.add("Hello"); // 现在可以正常调用 add 方法
这样,myList
引用指向了一个有效的 ArrayList
对象,你可以在其中添加元素而不会出现空指针异常。