Java面试题二

这篇博客整理了Java面试中常见的问答题目,涵盖了对象比较、HashSet原理、Collection接口子类的区别、值传递与引用传递概念、switch语句使用限制、异常处理机制以及数据库事务的作用等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(此系列试题来源于Java面试宝典书籍)

一、问答题

1. 下面的运行结果是?为什么

String str1 = “hello”;
String str2 = “he”+new String(“llo”);
String str3 = “he”+”llo”;
System.err.println(str1== str2);
System.err.println(str1 == str3);

// result:false   true

解析:

  • == :如果没有new一个实例的话,比较的就是值,如果new了一个实例(对象),比较的是地址
  • 栈中的常量池,如果存在一些常量,先去常量池里找,如果没有,再new

2. HashSet里的元素是不能重复的,那用什么办法区分重复与否

  • 当往集合里添加元素时,调用 add(Object)方法时候,首先会调用 Object 的 hashCode()方法判hashCode 是否已经存在,如不存在则直接插入元素

  • 如果已存在则调用 Object 对象的 equals()方法判断是否返回 true,如果为 true 则说明元素已经存在,如为 false 则插入元素

3. List、set、map是否继承来自Collection接口,存取元素时,有何差异

  • List,Set 是继承 Collection 接口; Map 不是

  • List:元素有放入顺序,元素可重复 ,通过下标来存取和值来存取

  • Map:元素按键值对存取,无放入顺序

  • Set:元素无存取顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在 set 中的位置是有该元素的 HashCode 决定的,其位置其实是固定的)

4. 简述java中的值传递和引用传递

值传递

  • 按值传递是指的是在方法调用时,传递的参数是按值的拷贝传递

  • 按值传递重要特点:传递的是值的拷贝,也就是说传递后就互不相关了

引用传递

  • 按引用传递是指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)

5. switch是否作用于byte上,能否作用在long上,是否能作用在string上

  • switch 可作用于 char byte short int

  • switch 可作用于 char byte short int 对应的包装类

  • switch 不可作用于 long double float boolean,包括他们的包装类

6. Java语言如何经行异常处理,请写出几个常见的运行时异常的编译异常

  • throws 是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)

  • throw 是语句抛出一个异常

NullPointerException - 空指针引用异常
ClassCastException - 类型强制转换异常。
IllegalArgumentException - 传递非法参数异常。
ClassNotFoundException - 类找不到异常
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException - 下标越界异常
NegativeArraySizeException - 创建一个大小为负数的数组错误异常
NumberFormatException - 数字格式异常
SecurityException - 安全异常
UnsupportedOperationException - 不支持的操作异常

7. 数据库事务和实际工作中的作用

数据库事务:要么全做完,要么不做

事务回滚:存在两张好不相关的表,修改完第一张表成功,修改第二张表出现异常,则事务回滚到第二张表的原始状态

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值