new关键词的作用
Person person = new Person();
- 右边的new Person: 是以Person类为模板在堆中实例化一个对象。
- 右边的(): 意味着在对象实例化后,调用Person的构造器,对其初始化。
- 左边的Person person: 创建一个Person类的引用变量,存放在栈中。
- =: 使用右边的对象引用指向刚刚创建的person引用变量。
成员变量
如果Person有一个成员变量Cat,那么在new Person时,会创建一个Cat引用,而不会创建一个Cat空间。
“字符串”
"hello"是一个对象,是java中唯一一个不需要new就会生成的对象。
String s = new String(“hello”);
其实是将"hello"对象的值浅拷贝到s对象中。
双引号生成的对象都在StringTable(StringTable在堆中)中。