public String makinStrings() 

 String s = "Fred"; 
 s = s + "47"; 
 s = s.substring(2, 5); 
 s = s.toUpperCase(); 
 return s.toString(); 
}How many String objects will be created when this method is invoked?
请大家详细的给讲解一下~~我觉得有 
s = "Fred", 
"47", 
s = s+"47"
s = s.substring(2, 5)
s = s.toUpperCase()5个String Object,不晓得对不对~~

解决方案 »

  1.   

    就是一个对象
    java中只有new才创建对象,这里只有一个哈,所有的操作都是指向同一个内存地址的,也就是一个对象
      

  2.   

    【shuai45】:
    对象 本来就是一个比较抽象的东西.
    你要问什么是对象 需要自己理解.
    希望LZ能看看 java编程思想【luyang1016】:
    java编成思想:一切都是对象。
    只要是个东西,他就是一个对象通俗的来说,一脱大便也是对象
    【luckycat】:
    什么是对象,关于这个问题看再多的书你也不能理解。等你有了大量的编程经验的时候你就彻底明白了。Class类和Method类还有Constructor类等等,他们都是一个类。他们当然也会有实例(对象),只不过他们的实例所包含的数据是其他类,其他方法,其他构造函数的信息而已。他们的实例都是要占用内存的。Class类的实例可以这么写,例如String.class,这里的String.class并不是指硬盘上的String.class文件,他就是一个Class类的实例,存在于内存之中。至于他到底是如何存储的,LZ可以参阅Inside JVM这本书,说的很详细。【njqibin】:
    用java的眼光看,万物皆对象。【CrazyGou】:
    对象,就是你的另一半【lew830715】:
    路过【For_suzhen】:
    对象确实很抽象,一个方法也能算一个对象啊.造诣太浅,实在说不明白【unhappyless_22】:
    就算一切都是对象,那这个对象也是实例化来的,既然是实例化来的就应该占用内存,对吧【zhaochunhui】:
    仔细看看 Think in java 第一和第二 章  相信你会找到答案的【jy19801226】:
    对象就是自己的老婆(具体的实例)就是一个具体的对象,她属于女人(一个类),也属于人类(一个类)
      

  3.   

    我认为楼主的解释是对的。
    s "Fred" "47" "Fred47" "ED47",个人意见。
      

  4.   

    java中只有new才创建对象这个是没错,
    但是String类型是不可变的,
    当它的值发生变化的时候就会从新开辟内存,从新创建对象!
    在这段代码中创建了四个String对象,创建了一个引用,
    分别指向前四个的内存地址,s.toString(); 并没有改变内存地址!
     public String makinStrings() 

     String s = "Fred"; 
    system.out.println();
     s = s + "47"; 
    system.out.println(s.hashCode());
     s = s.substring(2, 5); 
    system.out.println(s.hashCode());
     s = s.toUpperCase(); 
    system.out.println(s.hashCode());
     return s.toString(); 
    }
    去打印一下,他们的哈希码绝对不会一样的!证明他们的地址发生了变化!
      

  5.   

     s = s + "47";  
    这是一句代码,如果你 s ="47"; 他也会开辟内存创建一个字符串为”47“阿!
    具体看我的博客有篇String的文章,深刻理解一下就行了!
      

  6.   

    而且String str = "abc";
    String s = "ab"+"c";
    system.out.pinrlnt(s=str);
    你应该知道==是判断引用的,
    你会问我为什么这里String s = "ab"+"c";没有创建对象
    就是常量+常量的问题! 牵涉到字符池! 
    如果你看了我博客中的String那篇文章还有不懂的可以加我MSN:[email protected]
      

  7.   

    哦 好的 我去看看 
    谢谢whzreponse
      

  8.   

    昨天错了,sunstring的结果应该是"ED4".今天又受教了。