Java基础知识《Java程序员面试笔试宝典》--关键字

一、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可以保证浮点运算的准确性,并且所有的硬件平台运行结果一致(因为按照同一个标准执行)。


猜你喜欢

转载自blog.csdn.net/qq_24888697/article/details/80778094