最近在看Java的预科书,书中一章将面向对象思想的时候演示了这样一个例子:
String s1=new String("123");
书上解释说:“一旦创建了一个引用,就希望它能与一个新的对象连接,……”我就不明白哪个是引用哪个是对象了。
我思考了半天得出如下思路:不知对否?Object -> String -> s1 -> "123"
类 -> 子类 -> 引用变量 -> 对象所以:String s1=new String("123");
类 引用 =new 类构造(对象); 这样理解对吗?

解决方案 »

  1.   

    new String("123") 创建了一个匿名对象,并将该对象的引用给 s1所以s1引用了该对象.初学者这个阶段不要纠结 堆内存和栈内存,等你对java有一定认识后再深入了解这些好了
      

  2.   

    谢谢magicluo,但老师让我们画内存图,我看不懂不知道怎么画老师上课也是赶进度连提问的机会都没:(
      

  3.   

    要记住一点  对象的创建和对对象的引用时独立的String s1=new String("123");当value为"123"的字符串对象被创建时候立即被 s1 引用了实际上可以分解为两个步骤:
    String s1;
    s1=new String("123");java中的堆和栈都是java在 ram中存放数据的地方,java自动管理 堆和栈,coder们是不能直接设置堆和栈的。关于堆内存和栈内存,你自己google下应该有不少。《深入java虚拟机》 这本书也有很深层次的探讨,等你有基础后再研究吧