zoukankan      html  css  js  c++  java
  • Java类的实例化的初始化过程

    A a = new A();

    new 创建对象过程:
    1.类加载
        代码验证
    2.给对象在内存(堆)中分配空间(给属性赋值);
    3.属性赋默认值;
    byte,short.int,long ->0
    float  ->0.0f
    double ->0.0
    boolean  ->false
    String ->null
    char ->'u0000'
    4.给属性赋初始值;(用等号‘=’)
    5.调用构造方法(方法和类名相同,没有返回类型)
    6.将对象在堆区中的首地址返回给引用a

    /*
     * Java类实例化的初始化过程.
     *   执行顺序:
     *   (静态变量->静态初始化块)->main->(实例变量->实例初始化块)->构造器
     */
    
    public class NewInstanceTest1
    {
        public static void main(String[] args)
        {
            System.out.println("main");
    
            System.out.println("---111---");
            new NewInstanceTest1();
    
            System.out.println("---222---");
            new NewInstanceTest1();
        }
    
    
        private static int i = 1;
        public static String sStr = "静态变量";
        public String iStr = "实例变量";
    
    
        {
            // 实例初始化块
            System.out.println("进入实例初始化块");
            System.out.println("实例初始化块中调用变量:" + iStr);
            System.out.print("实例初始化块中调用方法:");
            iTalk();
        }
    
    
        static
        {
            // 静态初始化块
            System.out.println("进入静态初始化块");
            System.out.println("静态初始化块中调用变量:" + sStr);
            System.out.print("静态初始化块中调用方法:");
            sTalk();
        }
    
        public static void sTalk()
        {
            // 静态方法
            System.out.println("静态方法" + "/静态变量值" + (++i));
        }
    
        public void iTalk()
        {
            // 实例方法
            System.out.println("实例方法");
        }
    
        public NewInstanceTest1()
        {
            // 构造器
            System.out.println("构造器");
        }
    
    }
    
    
    
    // 输出结果:
    进入静态初始化块
    静态初始化块中调用变量:静态变量
    静态初始化块中调用方法:静态方法/静态变量值2
    main
    ---111---
    进入实例初始化块
    实例初始化块中调用变量:实例变量
    实例初始化块中调用方法:实例方法
    构造器
    ---222---
    进入实例初始化块
    实例初始化块中调用变量:实例变量
    实例初始化块中调用方法:实例方法
    构造器
  • 相关阅读:
    734. Sentence Similarity
    Rainbow Sort
    692. Top K Frequent Words
    347. Top K Frequent Elements
    12. Integer to Roman
    13. Roman to Integer
    109. Convert Sorted List to Binary Search Tree
    用表单写兴趣爱好的程序
    方法重载与方法重写的区别
    super和this的区别
  • 原文地址:https://www.cnblogs.com/kabi/p/6362841.html
Copyright © 2011-2022 走看看