int a = 1;1会存放在栈里
String s1 = "thanks";thanks会存放在data segment里
String s2 = new String("thanks");thanks会存放在data segment里
String a ="th";String b = "anks";String c =a+b;c会存放在data segment里
字符串全部存放在data segment里
常量池全部在栈里。
如果你不new的话,比如你写String s = "thanks";这时s分配在栈里,s直接指向字符池里的"thanks";但如果你这样写,String s; s = new String("thanks");这时s指向堆里的一块内存,这个内存里的地址指向字符池里的"thanks";
|