关键字

Static

static方法内部的变量是没有线程安全问题的,因为数据运行在栈里,线程是隔离开的。

static修饰的类变量,方法,代码块以及内部类,都属于类成员,不属于实例成员。

对static修饰的类变量,方法,代码块初始化顺序:

父类的静态变量和代码块比子类优先初始化;

其中静态变量和代码块在main方法之前便已经初始化。

在main方法之后父类构造器和子类构造器才开始初始化。

注意一种特殊情况:

static修饰对象,注意其构造器内的语句先执行。

final

  • final修饰的类,无法继承

  • 修饰的方法,无法被覆写

  • 修饰的变量,声明时必须初始化,也不能修改其内存地址

    要举String的例子

try catch finally

如果在try和catch中都遇到了异常,代码执行顺序是try -> catch -> finally

当finally执行后,再抛出异常

最终抛出的是catch的异常。

default

一般使用在接口上,对于该接口,子类无须强制实现,但自己必须有默认实现。

比如集合中的Map利用default关键字新增各种方法。

0%