教材里说JAVA数组声明后必须用new分配内存,实际上不用new也可以,这是为什么呢?用于不用有什么区别?

如题,谢谢了
2024-11-20 18:26:00
推荐回答(2个)
回答1:

new 一个对象出来,比如
SomeClass sc=new SomeClass();
这个时候已经为sc这个对象分配了指向 new SomeClass() 所创建的内存空间。
即对这个对象sc进行了实例化。
而SomeClass sc=null,则sc对象未进行实例化,是一个空的对象,未能指向任何内存空间。
(转)

回答2:

编程中,

String[] a;

这只是声明了一个符号及它将来代表的对象的类型。但我们并未实际上给它一个东西代表着。


我们需要:

a = new String[0]; 或 a = new String[] { "afewf", "befef" } ;


这样来具体创建对象并让它代表一下。


变量符号与真实的对象本身并不是一回事。