目录

一、成员变量初始化步骤(三步)

二、程序代码

三、执行过程

1、主函数先进栈空间

2、开一个对象空间给对象空间开辟一个地址(地址是随机的)对成员变量初始化(num)

3、构造函数进入空间

4、针对性初始化过程

5、主函数的执行过程


一、成员变量初始化步骤(三步)

默认初始化 -> 显示初始化(调用super时)->针对性(看构造函数)


二、程序代码

Demo类

public class Demo {public int num = 10;public Demo(){this.num=20;}}

主函数

public class Main {public static void main(String[] args) {Demo d = new Demo();System.out.print(d.num);}
}

三、执行过程

1、主函数先进栈空间

2、开一个对象空间给对象空间开辟一个地址(地址是随机的)对成员变量初始化(num)

注意:成员变量默认初始化为0值整数为0,浮点数为0.0,引用数据类型null

3、构造函数进入空间

注意:构造函数进来首先调用super()默认的父类是(Object)所以super走成员变量就是显示初始化,所以显示初始化在本程序中就是10

4、针对性初始化过程

注意:this是指向当前对象的应用,当构造函数刚刚进栈时就指定了this,通过this来区分我们调用的是哪一个构造函数(在构造函数还未进入栈时是存放在方法区的),代码中的this.num就是this指向的地址去查找地址中的num并赋值,这就是针对性初始化。记住构造函数结束后会有一个默认的return,构造函数弹出栈。

5、主函数的执行过程

解释:构造函数弹出栈new Demo()过程执行完,主函数的局部变量的d拿到该地址,并通过该地址去执行相关的操作(如d.num就是去该地址查找到num的值为20)。

Java成员变量初始化相关推荐

  1. Java成员变量初始化和构造函数顺序

    1.Java虚拟机会将所有的初始化动作手机到<init>()方法中,在分配内存后,就开始调用<init>()方法,其中,成员变量的初始化在构造函数里的初始化动作之前. publ ...

  2. Java 类加载顺序与成员变量初始化

    类加载顺序 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 ) 父类非静态代码块( 包括非静态初始化块,非静态属性 ) 父 ...

  3. java成员变量定义_java变量之成员变量和局部变量以及它们的运行机制

    Java语言根据变量定义位置的不同,将变量分为成员变量和局部变量.成员变量指的是定义在类中(方法外)的变量,局部变量指的是定义在方法中的变量.同时成员变量以是否用static修饰分为类变量和实例变量. ...

  4. Java 成员变量和静态变量的区别

    文章目录 Java 成员变量和静态变量的区别 变量声明默认值 与 Python 的联系 实例变量的声明 类变量的声明 static 方法 Java 成员变量和静态变量的区别 1)成员变量所属于对象.所 ...

  5. java静态变量需要初始化吗_» Java静态变量初始化顺序浅谈

    Java 类初始化顺序在网上已经有很多文章了,这里不再谈那么多,仅仅谈下Java静态变量的初始化顺序,如果你是Java高手,并且自认为对这个顺序已经掌握到了炉火纯青的境界,请忽视这篇文章. 前天看了Y ...

  6. Java Static 变量初始化

    目录 Java Static 变量初始化 直接赋值 static块初始化 实例方法初始化 解决方案 Java Static 变量初始化 static变量初始化方式 直接赋值 static块初始化 实例 ...

  7. C++笔记之结构体内对vector初始化,一般初始化,和类内私有vector类型成员变量初始化

    C++笔记之结构体内对vector初始化,一般初始化,和类内私有vector类型成员变量初始化 文章目录 C++笔记之结构体内对vector初始化,一般初始化,和类内私有vector类型成员变量初始化 ...

  8. java 成员变量的初始化_Java类变量和成员变量初始化过程

    一.类的初始化 对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量. 类的编译决定了类的初始化过程. 编译器生成的class文件主要对定义在源文件中的类进行了如下的更改: ...

  9. java成员变量的初始化

    2019独角兽企业重金招聘Python工程师标准>>> 类变量(static变量,不需要实例化对象也可以引用) 实例变量(非static变量,需要实例化对象) 局部变量(类的成员函数 ...

  10. java类成员变量初始化_探讨Java类中成员变量的初始化方式

    在 Java 里定义一个类的时候,很多时候我们需要提供成员变量,成员变量专业叫法是 Memeber Variable 或者干脆的叫作 Field. 根据是否使用 static 关键字修饰,可以将 Fi ...

最新文章

  1. 第十八讲 傅里叶变换
  2. 【工具】win10修改默认输入法,开机直接启动谷歌输入法
  3. 从国考大数据看中国哪个省的人最爱当官
  4. 人工智能改变生活的 10 种方式
  5. Open*** 服务器的搭建
  6. 对于DOM的attribute和property的一些思考
  7. css3弧形跑道效果_【Tableau 图表】你是不是真的需要一个跑道图呢?
  8. RabbitMQ 学习开发笔记
  9. Python requests抓取有道翻译 最新版破解js加密
  10. C语言笔试经典编程题目(汇总帖)
  11. html超链接下划线改虚线_CSS和html中超链接去掉下划线的方法总结
  12. Mac顶部菜单栏(Menubar)卡死
  13. Opencv学习笔记 常用函数、基础知识二
  14. crmeb v4.4.2 修复前端小程序物流查询有部分查询不出来的问题
  15. MyBatis知识汇总(第四篇)分页:LIMT(SQL方式),RowBounds(Java对象方式)
  16. 实战:浪潮服务器安装凝思 6.0.8 版本操作系统
  17. 关于MySql的Unhandled异常
  18. 【随笔】野生在左 科班在右——数据结构学习誓师贴
  19. 洛谷P2356 弹珠游戏
  20. 李群、李代数在SLAM中的应用

热门文章

  1. 记录一次idea因为虚拟内存不足而闪退的经历
  2. VC 轻松实现非客户区按钮
  3. 服务器显示无vga电缆怎么回事,无vga电缆是什么意思
  4. Towards a new generation of artificial intelligence in China
  5. H5设备运动事件 DeviceMotionEvent 实现摇一摇功能
  6. android 多媒体封装格式详解---MKV
  7. 结对开发石家庄地铁查询系统
  8. C语言数据结构队列的插入和删除
  9. 三流领导管下级,二流领导管同级,一流领导管......
  10. java黑洞数字_Java中实现数字黑洞的示例