java__关键字

1. static 静态变量

static声明的变量、代码块等,将会全局存在,也就是说不会受到JVM垃圾机制影响。
static全局只会创建一个,花括号{}内包含的代码为代码块,所以需要注意对内存的影响
static修饰的方法不能使用super,修饰的变量不能使用this,因为是全局变量(也就是属于所有类)

代码块执行顺序:

静态代码块>main()主函数>构造代码块>构造方法>局部变量
#######构造方法和构造代码块的区别:

  • 构造方法是给对应的对象进行初始化,构造代码块是给所有的对象进行统计处死话。
  • 构造代码块的定义是不同对象共性的初始化内容
    static关键字修饰的代码块不能存在任何方法中,代码块内执行顺序不能存在任何方法中

2. final常量修饰符

final 可以修饰:类,属性,内部类,方法
final 修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不可以改变
final 修饰的方法在子类不能重写,不能继承

3. abstract 抽象类修饰符

不能new 创建,也不能实例化,抽象类只能创建在子类中,abstract的方法必须重写
abstract 关键字不能应用于static、final、private中因为这些修饰符都不支持重写。
没有实现父类的所有abstract方法的子类,也是需要声明是abstarct类

4. transient 不参与序列化修饰符

只能修饰变量,实现serializable接口的,被transient修饰后,不再是对象持久化的一部分,不能序列化

5. native 外部定义

native method 就是一个java调用非java代码的接口
JNI = java Native Interface(通常是c或c++设计)允许其他平台调用java代码

6. synchronized 程序同步锁

synchronized修饰方法或代码块。
被synchronized 修饰后,只能同时被一个线程访问,其他线程访问该方法或代码块的将进入阻塞状态,等待上一个线程释放。

7. volatile

volatile 修饰的变量,保证了线程的可见性,即一个线程修改了这个变量,另一个线程立马可见
volatile 报纸单次读/取的原子性
原子性操作:一个或某几个操作只能在一个线程执行完之后,另一个线程才能执行操作,也就是说这些操作是不可分割的,线程不能再这些操作上交替执行

7. instanceof

双目运算符,判断是否一个类的实例
不能用来判断基本类型,当对象为class接口的实现类时,为true,左右位置互换均为true

  1. 判断是否为继承关系
  2. 判断是否实现关系
  3. 判断是否实例关系

你可能感兴趣的:(java__关键字)