我们在操作一些类的时候会产生些临时对象。
那些对象,难道只在heap里,没有在栈里生成系统默认的引用?
如:
Point a;System.out.println(a);这里会生成临时对象。 String a.toString();它的生存期到什么时候结束?

解决方案 »

  1.   


    Point a; 
    System.out.println(a); 
    a.toString(); 
    这样写能对吗?
    Point a,只是声名了一个对像.这时JVM会让它指向NULL. 
    a.toString(); 会出空针异常.生成临时对象????JVM可没那聪明
      

  2.   

    Point a; 这个a只是个引用变量,不是对象,你要生成一个对象得  new 构造名()
    就是new Point()
    你要是
    Point a; System.out.println(a); //javac 时就有错 java.lang.Error: Unresolved compilation problem: 
                               //  The local variable a may not have been initialized
    一个对象没有引用或者失去引用就会被垃圾回收,比如new Point().method();当这个对象调完method()方法后就被垃圾回收了。
      

  3.   


    早就跟你说过,学 Java 前先把 C++ 的细节全忘掉,然后再学 Java。
      

  4.   

    生成的临时对象用了之后就丢,java虚拟机给了“遍地的”垃圾回收站等着呢,当你放开手的时候东西就不是你的了