1、String赋值的两种方式的不同: 直接赋值:只能产生一个实例化对象,并且"www.mldn.cn"可以自动保存到对象(常量)池之中,以实现数据重用,如下:
String str = "www.mldn.cn";
构造方法;会产生两个实例化对象,并且不会自动入池,无法实现数据重用,到那时可以利用inter()方法手动入池,如下:
String str = new String("www.mldn.cn");
2、堆、堆栈、常量池: 堆:存储从new中出来的所有对象; 堆栈:存储基本数据变量和对对象的引用。 对象(new出的对象)本身不存在于堆栈中,而是存储在堆或常量池中(字符串对象存储在常量池中); 常量池:存储基本类型常量和字符串常量。 3、常量池: 静态常量池:指的是程序(*.class)在加载前自动将此程序之中的字符串、普通常量、类和方法的信息分配至静态常量池 运行时常量池:当一个程序(*.class)加载之后,常量中含有变量,分配到运行时常量池