Java类变量和成员变量初始化的过程
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要讲解了"Java类变量和成员变量初始化的过程",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java类变量和成员变量初始化的过程"吧!一、类
千家信息网最后更新 2024年11月20日Java类变量和成员变量初始化的过程
这篇文章主要讲解了"Java类变量和成员变量初始化的过程",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java类变量和成员变量初始化的过程"吧!
一、类的初始化
对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量。
类的编译决定了类的初始化过程。
编译器生成的class文件主要对定义在源文件中的类进行了如下的更改:
1) 先按照静态成员变量的定义顺序在类内部声明成员变量。
2) 再按照原java类中对成员变量的初始化顺序进行初始化。
一个java类和编译后的class对应的转换如下:
源文件:
public class Person{ public static String name="张三"; public static int age; static{ age=20; System.out.println("初始化age"); } public static String address; static{ address="北京市"; age=34; } public static void main(String[] args) { System.out.println(name); System.out.println(age); System.out.println(address); } }
当java源代码转换成一个class文件后,其转换成类似下面的代码:
public class Person{ public static String name; public static int age; public static String address; static{ name="张三"; age=20; System.out.println("初始化age"); address="北京市"; age=34; } public static void main(String[] args) { System.out.println(name); System.out.println(age); System.out.println(address); } }
初始化顺序依据转换后对应的class类成员变量的初始化顺序依次执行,所以所有的静态成员变量都是先声明,后执行赋值的,而且赋值的顺序也是依照源代码对静态成员变量初始化的顺序进行的,注意:定义一个成员变量并直接初始化与在静态代码块中进行初始化是等价的,都是依据它们在源代码中定义的顺序进行的。
二、对象的生成
对于对象的生成其初始化过程与类的初始化过程类似,但会增加构造函数阶段,源代码如下:
public class Person{ { name="李四"; age=56; System.out.println("初始化age"); address="上海"; } public String name="张三"; public int age=29; public String address="北京市"; public Person(){ name="赵六"; age=23; address="上海市"; } }
编译器转换成class文件后,会转换成类似下面的代码:
public class Person{ public String name; public int age; public String address; public Person(){ name="李四"; age=56; System.out.println("初始化age"); address="上海"; name="张三"; age=29; address="北京市"; name="赵六"; age=23; address="上海市"; } }
感谢各位的阅读,以上就是"Java类变量和成员变量初始化的过程"的内容了,经过本文的学习后,相信大家对Java类变量和成员变量初始化的过程这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
变量
成员
过程
顺序
静态
源代码
张三
上海
北京
北京市
编译
代码
文件
学习
生成
内容
对象
源文件
编译器
面的
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全意识形态工作汇报
上海运维服务软件开发机构
幻塔如何找到有角色的服务器
山东大美软件开发有限公司
专为维护网络安全而颁布的是
瀚云科技与工业互联网
gin链接数据库
注重网络安全企业的网址
海康威视主服务器ip
lol比尔吉沃特服务器好吗
串口通知数据库
华为刀片式服务器怎么看序列号
ibm服务器升级微码
网络安全大赛的电脑页面
王思聪个人服务器
大海战3服务器没有响应
ios应用管理清除数据库
网络安全需要哪些
查看linux服务器编码
没有密码只有32k良心服务器
数据库安全性ppt
企业软件开发培训
交警学习网络安全吗
陈酿数据库新账号
win10关闭网络安全级别认证
梅州通讯软件开发报价行情
计算机网络技术基本代码
无锡推广网络技术哪家便宜
网络技术支持面试常问的
软件开发测试用例范例