string str1 = "abc";
char[] str2 = {a,b,c};
他们在栈中是不是一个位置,是不是存储的格式一样啊?
请高手们指点

解决方案 »

  1.   

    char[]是一个类型。
    而string是一个类,所以肯定是不一样的。
      

  2.   

    这个具体又要看JVM的规范了  不要乱说的  
      

  3.   

    str1是应该是在堆中分配空间的,str2是在栈中分配的
      

  4.   

    看看编译原理的书好不好由于是静态字符串变量,所以“abc”编译时被放置到静态数据区中;
    而数组则是在堆中申请的数据,空间在堆中。
      

  5.   

    当然不是,存储格式也不一样
    但它们应该同在栈内,栈内有"abc",'a','b','c',str1指向"abc"的地址,str2应该指向'a'。至于'a','b','c'连续不连续就不清楚了
      

  6.   

    "abc"是在数据区分配的空间,str1存的是"abc"在数据区的地址。
    {a,b,c}是在堆中分配的空间,str2存的是他的堆中地址
      

  7.   

    1.字符串字面量是在常量池里的。不要跟栈扯上关系。
    2.知道什么是引用,什么是对象。
    3.知道栈是干什么用的。
    在推荐里有一个关于字符串jvm如何处理的帖子,很好,推荐看一下.