public class FinalStringDemo1 {
public static void main(String[] args) {
String a = "wukong2";
final String b = "wukong";
String d = "wukong";
String c = b + 2;
String e = d + 2;
System.out.println((a == c));
System.out.println((a == e));
}
}
老师, 我想问下, 你说a和c都是放在常量池中, 那d也应该是放在常量池, 但到了e为啥它就放在堆里了呢?
我的理解是a和d不是常量, 所以他俩是在程序运行时才进行赋值, 那在运行时创建的值不应该放在堆上么?