import java.util.*;

public class Main

{

public static void main(String[] args){

Student s = new Student(5);

s.show();

}

}

class Person{

public Person(){

System.out.println("父初始化");

show();

}

public void show(){

System.out.println("父show");

}

}

class Student extends Person{

public int age=10;

public Student(int age){

super();

//编译后this.age=10插入到这里;

show();

this.age=age;

}

@Override

public void show()

{

System.out.println("子show年龄是"+age);

}

}

打印:

父初始化

子show年龄是0

子show年龄是10

子show年龄是5

变量的初始化顺序:

1.当类第一次使用时,JVM就会加载该类,如果该类存在父类,那么就先加载父类,这是一个递归过程,直到Object为止.

在类加载中,首先进行静态成员变量按照默认值进行初始化,

然后按照在类中声明的顺序执行静态代码块和静态变量的显示初始化.

这个过程从父类到子类,并且只会执行一次!!!

2.当父类与子类的静态代码初始化完成后,如果创建了类的对象,

在初始化子类前,会先对其父类的实例变量进行默认初始化,

然后按照在类中的声明顺序来执行代码块与实例变量的显示初始化,

最后调用父类的构造函数,这也是一个递归过程,直到Object类为止.

(这个过程在每次创建对象时,都会执行!!!)

java成员变量的初始化_Java成员变量初始化过程相关推荐

  1. java变量访问权限_JAVA成员变量的访问权限

    成员变量的访问权限 我看到很多地方谈到关于Java里变量的访问权限问题. 很多地方认为对于默认修饰符的理解是这样的: 不写时默认为friendly 但就我所知Java里没有 friendly这一关键字 ...

  2. java类的静态成员初始化_Java类的初始化顺序 (静态变量、静态初始化块、变量、初始......

    很有意思的一篇文章 1.没有继承 静态变量->静态初始化块->变量->变量初始化块->构造方法 2.有继承的情况 父类静态变量->父类静态初始化块->子类静态变量- ...

  3. java static变量何时初始化_Java 静态变量何时初始化?

    小编典典 从请参阅Java静态变量方法: 它是一个属于类而不属于对象(实例)的变量 静态变量在执行开始时仅初始化一次.在初始化任何实例变量之前,将首先初始化这些变量 该类的所有实例共享一个副本 静态变 ...

  4. java变量存储位置_java 中变量存储位置的区别

    [原文] 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量 ...

  5. java中类变量局部量_java入门---变量类型类变量局部变量实例变量静态变量

    在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: typeidentifier[= value][, identifier[= value]...]; 格式说明:type为Jav ...

  6. java中私有变量和方法_Java 私有变量和私有方法

    作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com) 内容索引 访问私有变量 访问私有方法 在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是 Java ...

  7. java 根据环境导包_java环境变量配置原理解析以及eclipse导入外包的方法

    1. PATH环境变量.作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们需要把jdk安装目录下的bin目 ...

  8. java 类 加载 初始化_java中类的初始化和加载

    最近在阅读孙卫琴的java面向对象一书中,看到对java中类的初始化和加载中的论述比较系统,故笔记之 1)类的初始化,JAVA在初始化一个类时,以下步骤 A 假如类存在直接的父类,并且这个父类还没有初 ...

  9. java的静态变量怎么赋值_java static变量可以赋值吗?

    java static变量可以赋值吗? 可以赋值的.static的主要作用是静态成员,指该变量的实例在内存中之存放一次.赋值是可以随便改的. java中static关键字 static是java中非常 ...

最新文章

  1. 爆肝800000秒想出低成本无人驾驶测距
  2. C# 采用系统委托的方式处理线程内操作窗体控件(转载)
  3. 【SSM】第一个SpringMVC入门示例
  4. Java 中的目录创建处理
  5. MySQL 排名函数.md
  6. Cenos 7修改时区的方法
  7. 字符串string 、byte[]、MemoryStream、Base64String的相互转换
  8. Visual Studio Code——待补充
  9. Elasticsearch】Elasticsearch 25 个必知必会的默认值
  10. 树莓派上使用QT+ffmpeg进行音频编码+部署自启动+双击不启动问题
  11. 国内几款通用论坛程序简介和比较
  12. 手机号码归属地查询api [开源]
  13. 计算机毕业设计springboot+vue基本微信小程序的考试系统
  14. oracle11g 网页账号,oracle11g 创建用户并受权
  15. 奇瑞汽车召回部分瑞虎3xe纯电动汽车 共计8580辆
  16. 用Excel制作条形码
  17. java为Word插入图片水印
  18. opengl 多边形线框_OpenGL - 在纹理多边形上创建边框
  19. com.baomidou.mybatisplus.core.exceptions.MyBatisPlusException: java.net.UnknownHostException
  20. 互调失真 ,P1dB 压缩点,三阶交调截止点

热门文章

  1. Tablestore + Blink实战:交易数据的实时统计
  2. Mars 是什么、能做什么、如何做的——记 Mars 在 PyCon China 2018 上的分享
  3. 双11奇迹背后的大数据平台,不喧哗,自有声!
  4. 机器学习者都应该知道的五种损失函数!
  5. 新云网、5G、Wi-Fi 6 Plus,探秘2021通信展上的锐捷网络黑科技
  6. 赠书 | 如何部署一个Knative Service
  7. 如何在SQL Server 2019中添加数据敏感度分类的命令
  8. Python 薪资降温?不存在的
  9. 真相了!AI 程序员:我们根本没有 80w 年薪好么?
  10. oracle 12c pl/sql语言,ORACLE 12C SQL语句中通过with 定义PL/SQL 函数