一、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修饰的关键字有以下的特性。
- 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
- 禁止进行指令重排序。