目录
final
- 类不能被
继承
,final类中的所有成员方法都会被隐式的指定为final方法 - 方法不能被
重写
,所有的private方法都隐式地指定为final - 变量是常量,如果是基本数据类型的变量,则其
数值
一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能让其指向
另一个对象
transient
- 对于
不想进行序列化
的变量,使用 transient 关键字修饰 - transient 关键字的作用是:阻止实例中那些用此关键字修饰的的变量序列化;当对象被反序列化时,被 transient 修饰的变量值不会被持久化和恢复。transient
只能修饰变量
,不能修饰类和方法
this
- 用于引用类的
当前实例
- 此关键字是可选的,这意味着如果上面的示例在不使用此关键字的情况下表现相同。 但是,使用此关键字可能会使代码更易读或易懂
- this
调用本类中的其他构造方法
时,要放在首行
不能用在static方法中
super
- 用于从子类访问父类的变量和方法
- 在构造器中使用 super()
调用父类中的其他构造方法
时,该语句必须处于构造器的首行
,否则编译器会报错 不能用在static方法中
Override(重载)
- 重载就是
同一个类
中多个同名方法
根据不同的传参
来执行不同的逻辑处理
Overload(重写)
- 重写发生在
运行期
,是子类
对父类
的允许访问的方法的实现过程进行重新编写 返回值类型、方法名、参数列表必须相同,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类
public,protected,default,private
- public – 外部 本包 子类 本类
- protect – 本包 子类 本类
- default – 子类 本类
- private – 本类
static
修饰成员变量和成员方法
- 被 static 修饰的成员属于类,不属于单个这个类的某个对象,
被类中所有对象共享
,可以并且建议通过类名调用 - 被static 声明的成员变量属于静态成员变量,静态变量 存放在 Java 内存区域的
方法区
静态代码块
- JVM加载类时会执行这些静态的代码块,如果静态代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块
只会被执行一次
- 静态代码块对于定义在它之后的静态变量,可以赋值,但是不能访问
- 静态代码块在非静态代码块之前执行(
静态代码块—非静态代码块—构造方法
) - 静态代码块只在第一次被加载的时候执行一次,之后不再执行,而
非静态代码块在每new一次就执行一次
静态内部类
- 创建是不需要依赖外围类的创建
- 不能使用任何外围类的非static成员变量和方法
静态导包
- 导入某个类中的指定静态资源,并且不需要使用类名调用类中静态成员,可以直接使用类中静态成员变量和成员方法