zoukankan      html  css  js  c++  java
  • JAVA类初始化和实例初始化

    一、类初始化过程

    1、一个类要创建实例需要先创建和加载

         (1) main方法所在的类需要先加载和实例化

    2、一个子类要初始化,需要先初始化父类

    3、一个类初始化就是执行<clinit>方法

          (1) <clinit>() 方法由静态类变量显示赋值代码和静态代码块组成。

          (2) 静态类变量赋值海马和静态代码块从上到下顺序执行

          (3)<clinit>() 方法只执行一次

    二、实例初始化过程(有父类时,父类先开始初始化)

    1、实例初始化就是执行<init>()方法

           (1)<init>()方法可能重载有多个,有几个构造器就有几个<init>方法

           (2)<init>()方法由非静态实例变量显示赋值代码和非静态代码块、对应构造器代码组成

        (3)非静态实例变量显示赋值代码和非静态代码块从上到下顺序执行,构造器的代码最后执行

        (4)每次创建实例对象,调用对应构造器,执行的就是对应的<init>方法

        (5)<init>的方法的首行是super()或super(实参列表),即对应的父类<init>方法

    注:子类如果重写了父类的方法,通过子类对象调用的一定是子类重写过的代码

            非静态方法默认的调用对象是this

            this对象在构造器或者说<init>方法中就是正在创建的对象

  • 相关阅读:
    web性能优化
    5、Git:使用码云(Gitee)
    4、Git:文件操作
    3、Git:基本理论 和 项目搭建
    2、Git:环境配置
    1、Git:版本控制 和 Git历史
    18、各种锁的理解(非公平锁和公平锁、可重入锁、自旋锁、死锁)
    17、原子引用(乐观锁)
    16、深入理解CAS(重点)
    15、彻底玩转单例模式
  • 原文地址:https://www.cnblogs.com/pxblog/p/11567790.html
Copyright © 2011-2022 走看看