千家信息网

Java类变量和成员变量初始化的过程

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,这篇文章主要讲解了"Java类变量和成员变量初始化的过程",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java类变量和成员变量初始化的过程"吧!一、类
千家信息网最后更新 2025年02月24日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安全错误 数据库的锁怎样保障安全 软件开发行业机会 移动免费提供云服务器 医疗产业软件开发 oracle数据库 实例 网络安全的现状的事例 电话销售的服务器是什么 网络技术班学的什么 群众网络安全卫士 嵌入式视频服务器 我爱我家软件开发待遇 加强计算机网络安全保密 未转变者多人服务器解说 重庆网络安全专业就业学校 在软件开发中实现代码编辑功能 数据库sql查询实验 国家电网网络安全攻防演练 向日葵远程连接不上服务器咋回事 计算机网络技术目标职业名称 中国对网络安全的太封闭 啥情况用视频管理服务器 最简便的数据库 购买火车票设计数据库吗 2021年网络安全微课视频展 软件开发要用什么笔记本电脑配置 目前运用最广泛的服务器类型 数据库级联与拒绝的区别 otis服务器故障代码在哪里 自然资源地理信息与网络安全 怎样关闭金蝶的加密服务器 学习数据库收获了什么
0