Java基础知识(关键字)

说明:其中内容摘自:《Java程序员面试宝典》,这里仅供学习使用。

1. 变量命名有哪些规则?

只能有字母、数字、下划线和$组成,且必须由字母,下划线或$开头,不能是数字。

2. break,continue,return有什么区别??

  • break用于直接跳出当前循环,不在执行剩余代码,如果实在内层循环中进行,则是跳出内层循环代码,不影响外层循环。
  • continue用于停止当次循环,进入下一次循环,而不是跳出循环体本身,它只是中断一次循环而已。
  • return是一个跳转语句,表示从一个方法体中放回。

如何跳出外层循环?可以使用带表示的break语句,或者设置一个标识变量,多次执行break语句。

3. final,finally和finalize有什么区别?

  • final用于声明属性,方法和类,表示属性不可变,方法不可覆盖,类不可被继承。被final修饰的变量不可变,指的是引用不可变。因此final修饰的变量在定义的同时必须进行初始化
  • finally为异常处理中的一部分,只能用于try catch语句中,finally修饰的代码块中的语句一定被执行,常用于释放资源的情况。
  • finalize是Object类中的一个方法,在垃圾回收执行时调用被回收对象的finalize方法,可以覆盖此方法对其他资源进行回收,例如关闭文件等。但需要注意的是,一旦垃圾回收器准备好释放对象的空间,将首先调用器finalize方法,并在下一次垃圾回收动作发生时,才会真正的回收对象的内存。

4. assert有什么作用?

断言是一种程序调试的方法,提供了一种在代码中进行正确性检查的机制。主要用于保证程序的正确性,通过在程序开发和测试中使用。具有两种形式:

assert expression1
assert experssion1: expression2

expression1表示一个boolean表达式,expression2表示一个基本数据类型或一个对象。

public class Test {
    public static void main(String[] args) {
        assert 1 + 1 == 2;
        System.out.println("assert 1 ok!");
        assert 1 + 1 == 3 : "assert failed, exit!"
        System.out.println("assert 2 ok");
    }
}

5. static的关键字有哪些作用?

  • 为特定数据类型或对象分配单一的存储空间
  • 实现某个方法或属性与类而不是对象关联在一起,可以在不创建对象的情况下通过类直接调用方法或使用类的属性。

static有四个使用情况:

  1. 静态变量。全局变量的作用。
  2. 静态成员方法。不能调用非static方法,同时非static方法也不能调用static方法。
  3. 静态代码块。在类加载的时候执行,且仅执行一次。
  4. 静态内部类。不依赖于外部类实例对象而被实例化,不能与外部类具有相同的名字,不能访问外部类的普通成员变量,只能访问外部类中的静态成员变量和方法(包括private的类型)。

6. 使用switch时有哪些注意事项?

switch语句由于多分支控制,在使用switch(expr)时,expr只能是一个枚举变量,或一个整数表达式(int或Integer都可以),由于Java中byte,short和char类型都被隐式的转换为int类型,因此expr可以为byte,short,int,char类型。

Java7中,可以支持了String类型。

7. volatile有什么作用?

volatile是一个类型修饰符,它用来修饰被不同线程访问和修改的变量。被volatile修饰的变量,系统每次用它都是直接从内存中读取,而不是利用缓存(能加快速度,但有可能导致数据不一致)。在使用了volatile修饰成员变量后,所有线程在任何时候所看到的变量的值都是一致的。

public class MyThread inplements Runnable {
    private volatile boolean flag;
    public void stop() {
        flag = false;
    }
    public void run() {
        while(flag) {
            ; // do something
        }
    }
}

以上代码示例常用于停止线程,如果boolean类型的变量flag没有被声明为volatile,那么,将线程的run方法中在判断flag时,使用的就有可能为缓存中的值,此时就不能及时的停止该线程。

8. instanceof 有什么作用?

instanceof为java中的一个二元运算符,它的作用为判断一个引用变量所指向的对象是否为一个类(接口,抽象类,父类)的实例,返回一个boolean类型的值。

public class Test {
    public static void main(String[] args) {
        String s = "hello";
        int[] a = {1, 2};
        if (s instanceof String)
            System.out.println("true");
        if (s instanceof Object)
            System.out.println("true");
        if (a instanceof int[]) 
            System.out.println("true");
    }
}

9. strictfp有什么作用?

strictcp(strict float point),即精确浮点,用来保证浮点类型的运行在不同硬件平台上的准确性。一旦一个类被strictfp修饰,所有的方法都会被strictfp修饰。

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值