我看到别人总结的
2. String str2 = new String("abc");
System.out.println(str2 == "abc");
步骤:
1) 栈中开辟一块空间存放引用str2;
2) 堆中开辟一块空间存放一个新建的String对象"abc";
3) 引用str2指向堆中的新建的String对象"abc";
4) str2所指代的对象地址为堆中地址,而常量"abc"地址在池中,输出为false;
然后有疑问在4) str2所指代的对象地址为堆中地址,而常量"abc"地址在池中,输出为false;这句中常量“abc”怎么来的,是创建对象 时由构造函数String()传进来的么还是别的方法,要是由他传进来的
那么是否在创建对象是同时定义了一个常量“abc”呢?
这里不懂求大神指导。非常感谢 |
|