String a=new String();什么时候用到,一般不就是String a 吗?

来源:百度知道 编辑:UC知道 时间:2024/05/19 21:48:19
请详细解答一下
程序我写一下吧,你看一下:
class Preson
{ public String name;
public int age;
public void getInfo()
{
System.out.println(name);
System.out.println(age);
}
}
class Student extends Preson
{
String school=new String();
public void study()
{
System.out.println("Studding");
}
public void getInfo()
{
super.getInfo();
System.out.println(school);
}
public static void main(String[] args)
{
Preson p=new Preson();
p.name="person";
p.age=30;
p.getInfo();

Student s=new Student();
s.name="student";
s.age=16;
s.school="清华大学";
s.getInfo();
s.study();
}
}
这里的String school=new String(); 是否可以用String school;来代替呢?

new运算会立即给变量分配空间,并返回一个指针(a)指向这个内存空间。
而 String a只是声明变量,而不会给变量分配任何空间

String a 为 声明a
String a=new String(); 为 声明 并 实例 a