美文网首页
java__关键字

java__关键字

作者: DouMarK | 来源:发表于2019-10-17 10:07 被阅读0次

    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__关键字

          本文链接:https://www.haomeiwen.com/subject/ubmymctx.html