java 基础回顾 – 初始化类的变量

创建对象的过程

1: 首次创建类或者首次访问类的静态方法/静态域, 定位到该类的 .class 文件
2: 载入 .class 文件, 静态初始化的所有动作都会执行, 因此静态初始化只在 .class 对象首次加载时进行一次
3: new 对象, 首先在堆上分配足够的空间给对象
4: 这块存储空间会被清 0, 基本类型设为默认值, 引用设为 null
5: 执行字段定义处的初始化动作
6: 执行构造器

java 中创建和初始化是一体的, 创建的时候就已经有初始化操作, 即使想延后初始化(比如像在构造器里)

基本数据类型初始化时的默认值

  • boolean > false
  • char > 0
  • byte > 0
  • short > 0
  • int > 0
  • long > 0
  • float > 0.0
  • double > 0.0
  • 其它类型 > null

属性/变量初始化时机和顺序

  • 变量初始化的顺序由 声明顺序 决定
  • 类里的属性变量, 声明后未赋值; 在构造方法里赋值, 但是 在构造方法执行之前, 属性变量已经被赋值过一次

静态变量初始化

静态变量在这个类被首次实例化之后初始化 一次, 之后再次该类再次实例化也不会再次初始化

静态类初始化 在普通变量之前, 如果一个类中有多个静态变量那么会按照定义的先后顺序初始化

0 Comments
Leave a Reply