Java关键字
break/continue/return
break
跳出当前循环,不再执行剩余代码。若为嵌套循环中的内层循环,则只跳出内层循环。
continue
停止当次循环,回到循环起始处,进行下一次循环操作。
return
表示从一个方法返回,返回一个值或其他复杂类型,使程序控制返回到调用该方法的地方。当执行main方法时,return语句可以使程序执行返回到Java运行系统。
final
final修饰变量
被final修饰的变量引用不可变,但值可以变。即此变量只能指向他初始时指向的那个对象,而不关心该对象内容是否变化,故被final修饰的变量必须被初始化。
final修饰方法
被final修饰的方法不允许任何子类重写该方法,但子类可以使用这个方法。
final修饰类
被final修饰的类,不能被其他类继承,所有方法都不能被重写,故一个类不能同时用abstract和final修饰。被final修饰的类中的成员变量是可以改变的。
transient
变量修饰符,用transient关键字标记的成员变量不参与序列化过程。
volatile
在Java程序中,有时为了提高程序的运行效率,编译器会自动对其优化,把经常访问的变量缓存起来,程序在读取这个变量时有可能会直接从缓存(例如寄存器)中来读取这个值,而不会去内存中读取。
虽然这样做提高了程序的运行效率,但在多线程编程时,变量的值可能因别的线程而改变了,而该缓存的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致。
volatile作为类型修饰符,是被设计用来修饰被不同线程访问和修改的变量。被volatile修饰的变量,系统每次用到它时都是直接从内存中读取,而不会利用缓存,使所有线程在任何时候读取到该变量的值都是一样的。
注意:由于volatile不能保证操作的原子性,故一般不能代替sychronized。且volatile会阻止编译器对代码的优化,降低程序的执行效率。故除非迫不得已,否则尽量不要使用volatile。
instanceof
instanceof是Java语言中的一个二元运算符。
它的作用是判断一个引用类型的变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例,即它左边的对象是否是它右边的类的实例。
注:若左边是null则返回false。
例:
public class Test{
public static void main(String args[]){
String s = "Hello";
int[] a = {1,2};
if(s instanceof String){
System.out.println("true1");
}
if(s instanceof Object){
System.out.println("true2");
}
if(a instanceof int[]){
System.out.println("true3");
}
}
}
程序运行结果为:
true
true
true