问个问题~~
String s = new String("ab"+"cd"+"ef");
创建了几个对象?为什么

解决方案 »

  1.   

    4个
    String s = new String("ab"+"cd"+"ef");
    “ab”创建一个
    “cd”创建一个
    “ef”创建一个
    s=“abcdef” 创建一个
    在java中String类型的变量一旦被负值后其内存中的数据就不能改变
    所以在内存中共有4个内存单元来存放4个String对象
      

  2.   

    4个
    String s = new String("ab"+"cd"+"ef");
    “ab”创建一个
    “cd”创建一个
    “ef”创建一个
    s=“abcdef” 创建一个
    在java中String类型的变量一旦被负值后其内存中的数据就不能改变
    所以在内存中共有4个内存单元来存放4个String对象
    ---------
    这个解释很不合理啊
    这个答案好像不确定的啊,假设内存中已经有"ab"/"cd"/"ef",那么这些是不需要创建的
    ab+cd创建一个
    abcd+ef创建一个
    new的时候创建一个
    至少创建三个,至多6个
      

  3.   

    麻烦楼上的讲解一下java内部是如何计算"ab"+"cd"+"ef"的
      

  4.   

    要是常量池中ab  cd  ef  abcd  abcdef都有了  ,那就只创建了一个
    所以至少1个 ,至多6个
      

  5.   

    最少5个吧...
    "ab","cd","ef","abcdef",还有一个String对象String s="ab"+"cd"+"ef";才是4个吧!
      

  6.   

    呵呵 我觉得zzwh_0(混这么长时间了怎么还俩裤衩)说的很有道理,不算引用应该是你说的那几个。。