美文网首页
类的初始化与实例化

类的初始化与实例化

作者: MC_Honva | 来源:发表于2018-06-11 17:04 被阅读11次

    JAVA创建对象的四种方法

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

    • 通过new关键字创建

    这个就不用解释了

    • 通过Java反射
    Class.forName("类全限定名").newInstance();
    或者
    类.class.newInstance()
    
    • 通过clone方
      类需要先实现cloneable接口,并重写clone方法
    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对象的创建过程:类的初始化与实例化

    相关文章

      网友评论

          本文标题:类的初始化与实例化

          本文链接:https://www.haomeiwen.com/subject/wpmheftx.html