一、break 和 goto
1、Java如何跳出多重循环:在多重循环外面加标志
public class Break{ public static void main(String[] args){ out: for(int i=0;i<5;i++){ for(int j=0;j<5;i++){ if(j==2) break out; } } } }
2、Java中goto是一个保留字,但是不是一个关键字。
二、final
1、final用于声明属性、方法、类,分别表示属性不可变、方法不可覆盖、类不可被继承。
2、关于属性不可变:只能指向初始化时指向的那个对象,而不关注所指向对象的内容的变化(引用的不可变性)。
3、JDK中String、StringBuffer都是不可被继承的基本类型。
三、assert
1、用法:assert 1+1==3 :“assert fail!”;
2、异常:Exception in thread “main”Java.lang.AssertionError: assert fail!
四、static使用的4种情况:成员变量、成员方法、代码块和内部类(只有内部类才能用static修饰)。
五、switch
1、switch(expr)中的expr可以是int,short,char;
2、case之后可以是 常量,常量表达式,final型的变量;
3、Java7后支持String(不可以为null),本质上是调用String的hashcode()函数,用得到的int类型的hash值进行比较。
六、volatile:
1、编译器自动优化,会把经常访问的变量缓存(例如寄存器)起来,加上volatile后,每次访问都会到内存中提取。
2、volatile不能保证原子性,所以不能代替synchronized。
七、instanceof
1、用于判断一个对象是否是一个类(或接口、抽象类、父类)
public class Test{ public static void main(String[] args){ int[] a = {1,2}; if(a instanceof int[]){ System.out.println("true"); } } }
八、strictfp(精确浮点)
1、可以修饰类(修饰类的时候,相当于修饰其中的所有方法)和方法;
2、strictfp可以保证浮点运算的准确性,并且所有的硬件平台运行结果一致(因为按照同一个标准执行)。