• JavaSE阶段常见面试题(二)


    内部类

    内部类拥有独立的.class文件。

    String

    String s  = new String("hello");

    如上语句创建了几个对象?

    两个

    第一个:hello   //只要是字面量,Java都会创建一个String对象并将其存储到常量池中

    第二个:new String()   //new String()时会再创建一个String对象"hello"

    s:指向new出来的String()对象

    StringBuilder和StringBuffer区别

    StringBuffer类从jdk1.0出现,属于线程安全类,同步处理的,因此效率较低

    StringBuilder类从jdk1.5出现,属于非线程安全类,并发处理的,因此效率较高

     

    Java是值传递还是引用传递

    Java中无论是基本数据类型还是引用数据类型,都是值传递的

    对于基本数据类型而言,传递的是具体的值的副本

    对于引用数据类型而言,传递的是具体的地址值的副本

    ==和equals()的区别

    ==可以用于比较基本数据类型和引用数据类型。

            比较基本数据类型时比较具体值是否相同。

            比较引用数据类型是比较具体存储地址。

    equals()只能用于比较引用数据类型。

            在Object类中定义,默认比较==(即比较地址),一般没有参考意义,常常被重写用来比较具体的属性值是否相同。

    String类重写了equals()来比较字符串内容是否相同。

     

    进制

    int a = 068;正确吗?

    编译错误。0开头代表8进制最大为7,0b开头2进制,0x开头16进制

    Finally

    简述final,finally,finalize是什么?

    final表示最终的、不能改变的。修饰变量表示,该变量的值不能被改变。修饰方法表示,该方法不能被重写。修饰类表示不能被继承。

    finally是异常处理机制的最后一块,它只能跟在try后活着最后一个catch后,finally可以保证只要程序执行到try语句块,无论try代码是否出现异常,finally都必定执行。通常我们使用finally去完成资源释放这类操作,比如IO中的关闭流操作。

    finalizes是一个方法,定义在Object中,该方法为一个对象生命周期中的最后一个方法,会被GC调用,当一个对象即将被GC回收前会调用该方法。

     

     输出结果是什么

    public class FinallyDemo3 {

        public static void main(String[] args) {

            System.out.println(

                    test("0")+","+test(null)+","+test("")

            );

        }

        public static int test(String str){

            try {

                return str.charAt(0)-'0';

            } catch (NullPointerException e) {

                return 1;

            } catch (Exception e){

                return 2;

            } finally {

                return 3;

            }

        }

    }

    最后输出结果为3,3,3

    finally块中的return语句会覆盖try catch中的return返回

    如果try中有return语句,finally中也有return语句,最终执行的是finally中的return语句

  • 相关阅读:
    RN6752V1 高性能AHD转MIPI&DVP&BT656&BT601芯片方案,目前适用于车载方案居多
    使用WebSocket实现网页聊天室
    C++11之decltype类型推导(使用场景、推导四规则、cv限定符)
    Java基于SpringBoot+Vue+nodejs的在线小说阅读平台 element
    软件测试(四)黑盒,白盒,灰盒测试
    RN:Error: /xxx/android/gradlew exited with non-zero code: 1
    2023.11.7: OpenAI DevDay总结
    Qt之多级折叠下拉导航菜单(采用QTreeWidget)
    jupyter崩溃OOM,out of memory,jupyter代码写不进去,保存不了。
    web网页设计期末课程大作业 基于HTML+CSS+JavaScript响应式环保科技公司网站模板(环保主题网站设计)
  • 原文地址:https://blog.csdn.net/m0_51041464/article/details/126191411