【Java基础】java中常用关键字理解this、static、final、volatile理解

来源:互联网 发布:马伯庸 知乎 编辑:程序博客网 时间:2024/05/18 00:00

一、this关键字

this关键字只能在方法内部调用,表示对“调用方法的那个对象“的引用,用于在方法内部获取调用此方法类的引用。

类的内部调用同一个类的其他方法不必使用this,直接调用即可,当前方法的this会自动应用于同一类中的其他方法。

class A{    public void print(){        System.out.println(this.getClass()+" print method");    }    public void printAgain(){        print();    }}class B{    public void print(){        System.out.println(this.getClass()+" print method");    }    public void printAgain(){        this.print();    }}public class This {    public static void main(String[] args) {        A a = new A();        B b = new B();        a.printAgain();        b.printAgain();    }}

二、static关键字

在了解this的情况下,我们知道static方法就是没有this的方法,static修饰的方法表示类方法,修饰的属性表示类属性。无论该类有多少对象,其static修饰的域始终只有一个。也就是static方法内部不能直接调用非static方法。

public class B{    public void print(){        System.out.println(this.getClass()+" print method");    }    public void printAgain(){        this.print();    }    public static void laugh(){        this.print();  // 编译器报错,static方法没有this    }}

三、final关键字

final修饰方法,该方法不能被修改。
finnal修饰属性,该属性初始化之后不能被修改。
final修饰类,该类不能被继承,并且该类的中所有方法都隐式指定为final的。

四、volatile关键字

volatile涉及到并发编程的相关知识。简单来说被volatile修饰的关键字有以下的特性。
  1. 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
  2. 禁止进行指令重排序。

0 0