类的初始化与实例化

2018-06-11  本文已影响11人  MC_Honva

JAVA创建对象的四种方法

  1. 通过关键字new
  2. 通过Java反射
  3. 通过clone方法
  4. 通过序列化方式

这个就不用解释了

Class.forName("类全限定名").newInstance();
或者
类.class.newInstance()
public class Demo implements Cloneable{

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
    
}

public class Run {
    public static void main(String[] args){
        try {
            Demo d = new Demo();
            Demo d2 = (Demo) d.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
    }
}

类的初始化时机与过程

public class StaticTest {
    public static void main(String[] args) {
           staticFunction();
       }

       static StaticTest st = new StaticTest();
       

       static {   //静态代码块
           System.out.println("1");
       }
       int a = 110;    // 实例变量

       {       // 实例代码块
           System.out.println("2");
       }

       StaticTest() {    // 实例构造器
           System.out.println("3");
           System.out.println("a=" + a + ",b=" + b);
       }

       public static void staticFunction() {   // 静态方法
           System.out.println("4");
       }

       static int b = 112;  
}
----------
2
3
a=110,b=0
1
4

结论:实例变量和实例代码块执行顺序要优于实例构造函数,而实例变量和示例代码块的优先顺序取决于他们代码的位置,谁在前谁先执行。静态变量、静态代码块、静态方法同样如此。


详细大神讲解链接
深入理解Java对象的创建过程:类的初始化与实例化

上一篇下一篇

猜你喜欢

热点阅读