java对象的创建 机制是?

解决方案 »

  1.   

    Java 中对象的创建方式 平时我们写的一条创建对象的语句,如: Object o = new Object(); ,就是创建了一个 Object 的对象,并且有 o 来应用这个对象,必须强调的一点是—— Java 是没有指针这个概念的,所以这里说的是引用。 当执行过这一条语句之后,在内存中就会出现两个位置,用于保存 o 和 o 所引用的对象,这两个地方分别是一个栈和一个堆,在栈里放的是引用 o ,在堆里放的是 o 所引用的对象,那么 o 是怎么引用到那个新创建的对象的呢?这里需要说明一点,其实本质上在栈里的引用变量存放的都是一串代表 0 或 1 的位,这一些位组合起来便是在堆里的对象的地址,这有点像是 C 语言里的指针。 如果又有一个 Object o2 = o; 那么 o2 这个变量也会保存到栈里面,并且 o2 在栈里的值和 o 是相同的,也就是说 o2 和 o 引用的是同一个对象。但是如果有: Integer i1 = new Integer ( 1 ) ; 和 Integer i2 = new Integer(1); 这两条语句,那么将会在堆里生成两个不同的对象,并且分别由 i1 和 i2 引用,也就是说这时候 i1 和 i2 内的位组成的数值时不相等的。 
      

  2.   

    可以把引用当做遥控器,对象看做电视机。这样就好理解了。比如B和C均继承A,你可以写成A a=new B()
      

  3.   

    java创建对象和初始化对象是一体的。创建对象就是开辟内存了。
    实例化一个类(生成对象)有四种途径:调用new操作符;调用Class或java.lang.reflect.Constructor对象的newInstance()方法;调用任何现有对象的clone()方法;通过java.io.ObjectInputStream类的getObject()方法反序列化。
      

  4.   

    http://www.ticmy.com/?p=302