== equals()问题

解释:优化 s1和s2都不是经过new关键字建立的字符串,因此这两个引用指向的字符串都不是堆中的,而是在常量池中的“aaa”,编译器优化后,它们是指向同一个在常量池中的“aaa”. s3是经过控制台读取的输入,next()方法返回一个String,这个String应该是在堆中根据输入的字符串建立的。所以s1和s2的引用是相同的,s3的引用指向的是堆根据输入新建立的字符串,和s1,s2指向的常量池中
相关文章
相关标签/搜索