- public class StringDemo{
- public static void main(String[] args){
- String s1 = "abc";
- String s2 = new String("abc" );
- System.out.println(s1 == s2);
- }
- }
复制代码 这个程序运行的结果是False,解释的是S1的对象是存储在常量池中,而S2的对象是存在堆中,为什么这两个对象要存在不同的内存中啊?
还有,大牛能不能科普下java的内存机制?栈、堆、方法区、还有现在这个常量池都分别用来存储什么?
|
|