俺就是面试题的搬运工⑧

36、数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。String有length()这个方法。

37、下面这条语句一共创建了多少个对象:String s=“a”+“b”+“c”+“d”;

一个对象

String s="a"+"b"+"c"+"d";
        System.out.println(s=="ab"+"cd");//true
String s="a"+"b"+"c"+"d";
        System.out.println(s=="abcd");//true

38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

try {
    for (int i = 0; i < 3; i++) {
        for (int i1 = 0; i1 < 3; i1++) {
            if(i==2){
                System.out.println("return要执行了");
                return;
            }
            System.out.println(i+"===="+i1);
        }
    }

}
finally {
    System.out.println("finally执行");
}

控制台

俺就是面试题的搬运工⑧_第1张图片

39、说一下 HashSet 的实现原理?

HashSet底层由HashMap实现

HashSet的值存放于HashMap的key上

HashMap的value统一为PRESENT

40、final, finally, finalize的区别。

  1. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 内部类要访问局部变量,局部变量必须定义成final类型
  2. finally是异常处理语句结构的一部分,表示总是执行。
  3. finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用

你可能感兴趣的:(面试题,java,jdk,javascript,object,jvm)