答:当Java程序直接使用形如“hello”的字符串常量,JVM将会使用常量池来管理这些字符串;
当使用new string (“hello”)时,JVM会先使用常量池来管理直接量,再调用String类的构造器来创建一个新的String对象,新创建的String对象被保存在堆内存中。换句话说,new string (“hello”)一共产生了两个对象。
2、super和this的区别?
super调用的是其父类的构造器,而this调用的是同一个类重载的构造器。
3、理解类成员
static修饰的成员就是类成员,包括成员变量、方法、构造器(不能用static修饰)、初始化块、内部类五个部分。
使用对象(实例)来调用类成员变量、方法时,实际是委托给该类访问类成员和方法。
eg:
public class Test {
public static void info()
{
System.out.print("static修饰的类方法");
}
public static void main(String[] args) {
Test p=new Test();
p=null;
p.info();
}
}