java程序员面试(一)

关键字

  1. 标识符命名有哪些规则

    • 字母、数字、下划线、$
    • 第一个字符不能是数字
  2. break、continue、return语句有什么区别

    • break 跳出当前循环体;
    • continue 跳过本次循环;
    • return 跳转语句,表示方法返回,使程序返回到调用该方法的地方;
    • 若想跳出多重循环,在多重循环外定义一个标识符 如:out: 在循环体内 break 标识符 如 break out;
  3. final、finally、和finalize有什么区别

    • final 修饰成员变量,变量不可变;修饰方法,不可被重写;修饰类,不可被继承;
    • 被final修饰的变量,不可变是指引用不可变,但对象可变,就意味着其值可以变;
    • final做方法参数,这个参数函数内部不允许被修改;
    • 一个类不能同时使用final和abstract
    • jdk不能被继承的类:String,StringBuffer
    • finally 异常处理的一部分,表示这段语句最终执行,但不一定执行(JVM挂了),一般用于释放资源;
    • finalize是Object类的一个方法,在垃圾回收器执行时会调用被回收对象的finalize()方法;
  4. assert有什么作用

    • assert 一种软件的调试方法,提供在代码中进行正确性检查的机制,通常在程序开发和测试时使用;
    • assert包含两种表达式 表达式一:assert expression 1; 表达式2: assert expression1: expression2;
    • expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象;
    • 执行时要使用 -ea java -ea Test;
    • assert一般不用来写业务的流程;
  5. static关键字有哪些作用

    • static修饰成员变量,该变量归类所属,类加载时初始化;
    • static修饰成员方法,该方法归类所属,不需要创建对象就可以调用,static方法中不能使用this、super关键字,不能调用非static方法。
    • static修饰代码块,JVM加载时会执行static代码块,static代码块经常被用来初始化静态变量;
    • static 内部类 被static修饰的内部类,可以不依赖于外部类实例对象而被实例化,静态内部类;
    • static与final结合,类似于全局常量;一旦赋值就不可以修改,并且可以通过类名可以访问;
    • static的一个重要作用时用来实现单例模式

      /**
      * 单例模式的特点是该类只能有一个实例,为了实现这一功能必须隐藏类的构造函数;
      * 构造函数private  而实例方法,是需要通过类名去调用的,所以需要为static这个实例方法;
      */
      class Singleton {
          private static Singleton instance = null;
          private Singleton(){
          }
          public static Singleton getInstance() {
              if( instance == null){
                  instance = new Singleton();
              }
              return instance;
          }
      }
  6. 使用switch时有哪些注意事项

    • switch(exp) exp只能时枚举常量或整数表达式,其中基本类型是Integer,所以long、double等需要显示转换的不能够使用,除非带上强制转换;
    • java7 支持exp为String,内部原理是String对象调用hashCode()方法,得到int类型的hashCode,然后比较;
    • 一个case的末尾要加上 break;
  7. volatile有什么作用

    • java中程序在读取变量的时候有可能直接去缓存中读值,多线程编程的时候,变量的值可能因为彼得线程而改变,而该缓存中的值不会相应的改变,从而有的时候会读取不一致;
    • volatile 是一个类型修饰符,用来修饰被多个线程访问的变量,被修饰之后就会直接去内存中取;
    • volatile不能保证原子性,一般不能代替sychronized
    • volatile会阻止编译器对代码的优化,因此会降低程序的执行效率。能不使用volatile就尽量不使用volatile
  8. instanceof有什么作用

    • 二元运算符,判断一个对象是否属于一个类,返回时boolean类型;
  9. strictfp 有什么作用

    • strictfp 是strict float point 的缩写,指的是精确浮点,用来确保浮点数运算的准确性;
    • 依照 IEEE 754
    • 修饰 类、接口、或者方法

本文链接:

https://heyzen.club/index.php/Coder/291.html
1 + 6 =
快来做第一个评论的人吧~