Java类变量和成员变量初始化的过程
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要讲解了"Java类变量和成员变量初始化的过程",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java类变量和成员变量初始化的过程"吧!一、类
千家信息网最后更新 2025年01月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安全错误
数据库的锁怎样保障安全
四级数据库工程师题目类型
数据库安装失败 找不到
单台服务器qps
服务器怎么搭起来
践行互联网科技有限公司
郧西好的软件开发
orcal数据库如何使用
搞网络安全的大神
计算机网络技术有没有编程题
网络安全工知识竞赛
金山区品牌软件开发服务报价表
数据库触发器为什么停止不了
软件开发进度持续中
csgo丢失服务器连接
游戏流媒体服务器架构
杭州web前端软件开发怎么样
网络安全软件开发语言
汽车 软件开发
网页制作注册写入数据库
谷歌服务器安卓能用吗
阜新软件开发价格
轻量服务器开方舟服务器
网络安全等级保护实施条例
网络安全人员工资如何
mysql多个数据库同步
数据库删除一个数据
数据库开机会自动启动吗
祁阳县网络安全宣传
遂宁有几家软件开发
浙江应用软件开发定制