知识点
Java常量
,final
修饰,值被设定后不能再被修改静态变量
,static
修饰,顾名思义,无须创建对象,便可在内存中申请一个存储空间进行存储,存储在方法区
。成员变量
, 也称实例变量
,它随着当前对象的建立而建立,随着对象的销毁而销毁,存在于对象所在的堆内存
中构造器
,创建class对象时执行静态初始化块
,执行优先级高于非静态的初始化块
,它会在对象装载到jvm的时候执行一次
,执行完成便销毁,只能初始化static
修饰的变量非静态初始化块
,执行的时候如果有静态初始化块,先执行静态初始化块再执行非静态初始化块,在每个对象生成时都会被执行一次
,它可以初始化类的实例变量。但它会在构造函数执行之前被执行
。
对象的初始化流程
- 初始化
父类的静态成员
- 初始化
父类的静态代码块
- 初始化子类的静态成员
- 初始化子类的静态代码块
- 初始化
父类的非静态成员
- 初始化
父类的非静态代码块
- 初始化
父类的构造方法
- 初始化子类的非静态成员
- 初始化子类的非静态代码块
- 初始化子类的构造方法
成员变量与局部变量
类中的变量不用初始化 方法中的局部变量必须初始化
对于类的成员变量。不管程序有没有显示的初始化,Java虚拟机都会先自动给它初始化为默认值。
规则为:
整数类型
(byte、short、int、long)的基本类型变量的默认值为0。单精度浮点型
(float)的基本类型变量的默认值为0.0f。双精度浮点型
(double)的基本类型变量的默认值为0.0d。字符型
(char)的基本类型变量的默认为 “/u0000”。布尔性
的基本类型变量的默认值为 false。引用类型
的变量是默认值为 null。数组引用类型
的变量的默认值为 null。关键数组变量的实例后,如果没有没有显示的为每个元素赋值,Java 就会把该数组的所有元素初始化为其相应类型的默认值。
Java
八类基本数据类型
可以默认赋值默认值(int、short、float、double、long、boolean、byte、char/封装类分别是:Integer、Short、Float、Double、Long、Boolean、Byte、Character)
String 类型不是基本数据类型,它实际上是final修饰,所以也不可以继承。
String 类型不是基本数据类型,判断字符串相等,只能使用
equals()
- 局部变量初始化 局部变量声明以后,Java 虚拟机不会自动的为它初始化为默认值。因此对于局部变量,必须先经过显示的初始化,才能使用它。
java关键字null
在Java中,null本身不是对象,也不是Objcet的实例,null值表示引用不指向任何对象,因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。
运行过程中系统发现使用了这样一个引用时·可以立即停止进一步的访问,不会给系统带来任何危险。