Java成员变量初始化
目录
一、成员变量初始化步骤(三步)
二、程序代码
三、执行过程
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成员变量初始化相关推荐
- Java成员变量初始化和构造函数顺序
1.Java虚拟机会将所有的初始化动作手机到<init>()方法中,在分配内存后,就开始调用<init>()方法,其中,成员变量的初始化在构造函数里的初始化动作之前. publ ...
- Java 类加载顺序与成员变量初始化
类加载顺序 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 ) 父类非静态代码块( 包括非静态初始化块,非静态属性 ) 父 ...
- java成员变量定义_java变量之成员变量和局部变量以及它们的运行机制
Java语言根据变量定义位置的不同,将变量分为成员变量和局部变量.成员变量指的是定义在类中(方法外)的变量,局部变量指的是定义在方法中的变量.同时成员变量以是否用static修饰分为类变量和实例变量. ...
- Java 成员变量和静态变量的区别
文章目录 Java 成员变量和静态变量的区别 变量声明默认值 与 Python 的联系 实例变量的声明 类变量的声明 static 方法 Java 成员变量和静态变量的区别 1)成员变量所属于对象.所 ...
- java静态变量需要初始化吗_» Java静态变量初始化顺序浅谈
Java 类初始化顺序在网上已经有很多文章了,这里不再谈那么多,仅仅谈下Java静态变量的初始化顺序,如果你是Java高手,并且自认为对这个顺序已经掌握到了炉火纯青的境界,请忽视这篇文章. 前天看了Y ...
- Java Static 变量初始化
目录 Java Static 变量初始化 直接赋值 static块初始化 实例方法初始化 解决方案 Java Static 变量初始化 static变量初始化方式 直接赋值 static块初始化 实例 ...
- C++笔记之结构体内对vector初始化,一般初始化,和类内私有vector类型成员变量初始化
C++笔记之结构体内对vector初始化,一般初始化,和类内私有vector类型成员变量初始化 文章目录 C++笔记之结构体内对vector初始化,一般初始化,和类内私有vector类型成员变量初始化 ...
- java 成员变量的初始化_Java类变量和成员变量初始化过程
一.类的初始化 对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量. 类的编译决定了类的初始化过程. 编译器生成的class文件主要对定义在源文件中的类进行了如下的更改: ...
- java成员变量的初始化
2019独角兽企业重金招聘Python工程师标准>>> 类变量(static变量,不需要实例化对象也可以引用) 实例变量(非static变量,需要实例化对象) 局部变量(类的成员函数 ...
- java类成员变量初始化_探讨Java类中成员变量的初始化方式
在 Java 里定义一个类的时候,很多时候我们需要提供成员变量,成员变量专业叫法是 Memeber Variable 或者干脆的叫作 Field. 根据是否使用 static 关键字修饰,可以将 Fi ...
最新文章
- 第十八讲 傅里叶变换
- 【工具】win10修改默认输入法,开机直接启动谷歌输入法
- 从国考大数据看中国哪个省的人最爱当官
- 人工智能改变生活的 10 种方式
- Open*** 服务器的搭建
- 对于DOM的attribute和property的一些思考
- css3弧形跑道效果_【Tableau 图表】你是不是真的需要一个跑道图呢?
- RabbitMQ 学习开发笔记
- Python requests抓取有道翻译 最新版破解js加密
- C语言笔试经典编程题目(汇总帖)
- html超链接下划线改虚线_CSS和html中超链接去掉下划线的方法总结
- Mac顶部菜单栏(Menubar)卡死
- Opencv学习笔记 常用函数、基础知识二
- crmeb v4.4.2 修复前端小程序物流查询有部分查询不出来的问题
- MyBatis知识汇总(第四篇)分页:LIMT(SQL方式),RowBounds(Java对象方式)
- 实战:浪潮服务器安装凝思 6.0.8 版本操作系统
- 关于MySql的Unhandled异常
- 【随笔】野生在左 科班在右——数据结构学习誓师贴
- 洛谷P2356 弹珠游戏
- 李群、李代数在SLAM中的应用
热门文章
- 记录一次idea因为虚拟内存不足而闪退的经历
- VC 轻松实现非客户区按钮
- 服务器显示无vga电缆怎么回事,无vga电缆是什么意思
- Towards a new generation of artificial intelligence in China
- H5设备运动事件 DeviceMotionEvent 实现摇一摇功能
- android 多媒体封装格式详解---MKV
- 结对开发石家庄地铁查询系统
- C语言数据结构队列的插入和删除
- 三流领导管下级,二流领导管同级,一流领导管......
- java黑洞数字_Java中实现数字黑洞的示例