java基础知识面试题之关键字

三.关键字

3.1 变量命名有哪些规则

  • 由数字,字母,_,$组成,且开头不能是数字

3.2 break,continue,return 有什么区别

  • break:跳出当前循环
  • continue:跳出本次循环
  • return:从一个方法返回

3.3 final,finally和finalize有什么区别

  • final:用于修饰属性,方法,类,分别表示属性不可变(针对引用类型的属性指的是引用不可变,但对象中的数据可以变),方法不可覆盖,类不可继承
    • final成员变量必须初始化
      • 定义时初始化
      • final成员变量可以在初始化块中初始化,打不能在静态初始化块中初始化
      • 静态final成员变量可以在静态初始化块中初始化,但不能在初始化块中初始化
      • 在构造器中初始化,但静态final变量不能在构造器中初始化
    • final类(如String,StringBuffer)
      • 不能继承,所有方法不能重写
      • final类的成员变量可以改变
      • 一个类不能被final和abstract同时修饰
  • finally作为异常处理的一部分,表示这段语句最终一定会执行,经常用于释放资源
  • finalize是Object的一个方法,垃圾回收器执行时会调用被回收对象的finalize方法

3.4 assert(断言)有什么作用

  • 一种软件调试方法,assert 表达式 ,若表达式为true正常运行,若false,则说明程序已经处于一种不正确的状态,系统需要提供告警信息并退出程序,同参在程序开发和测试时使用。

3.5 static关键字有哪些作用

  • 主要有两个作用:一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关,二:实现某个方法或属性与类而不是对象关联在一起,也就是说,在不创建对象的情况下也可以使用方法或属性。具体而言使用static有四种情况:成员变量,成员方法,代码块,内部类
  • static成员变量
    • java中没有全局变量的概念,但可以通过static实现全局的效果,实例变量属于对象,对象创建后才为其开辟空间,静态变量属于类,类加载时就被分配了空间,可直接通过(类.静态变量)使用。
    • 静态变量只有一份,不会随对象的多少发生改变,所有对象共享其静态变量
  • static成员方法
    • 普通方法归属于对象,通过对象.方法调用,静态方法归属于类,通过类名.方法调用
    • 静态方法中不能使用this,super关键字,只能使用静态变量或方法(因为此时可能还没有创建对象)
    • static有个重要的作用就是实现单例,将构造器声明为private的,在提供一个可获得对象的静态方法,可确保在程序运行时,该类的实例只有一份
    • public static的变量和方法本质上是全局的,若使用private static则表示在该类的静态代码块或类的静态方法中可以调用,不能在其他地方调用
  • static代码块
    • jvm加载类时会执行静态代码块,若有多个,按顺序执行,且只会执行一次,常用来初始化静态变量
  • static内部类
    • 可以不依赖外部实例而实例化
    • 只能调用静态变量或静态方法
  • 引申
    • static final修饰变量表示全局常量,一旦赋值不可修改,static final修饰方法表示该方法不可覆盖,且可通过类名访问

3.6 使用switch时有哪些注意事项

  • 使用switch(expr)时,expre只能是一个枚举常量或一个整数表达式,不能是浮点类型的数据,jdk7以后expre也可以是String类型的
  • case后一定不能跟变量,或带有变量的表达式(final修饰的可以)
  • case子句一般跟break配合,若没有break,程序会将符合条件的case,包括之下的case语句

3.7 volatile有什么作用

  • 为了提高运行效率,编译器会自动对其优化,将经常被访问到的数据缓存起来,但这样会带来线程安全问题,比如一个线程修改了数据,但缓存中没有即时对应修改,就会造成后来访问该数据的线程读到错误数据,使用volatile可以阻止数据进行缓存,保证线程安全
  • 但这样做会影响性能,能不用就不用

3.8 instanceof有什么作用

  • 判断一个引用类型变量所指的对象是否是一个类(或接口、抽象类、父类)的实例
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值