Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Java 编程语法

69 道题目
我的收藏与复习
题干与完整题解免费阅读第 4 / 7 页

答:在 Java 21、不开启预览的前提下,byte 可以,String 可以,基本类型 long 不能直接作为 switch 选择器。传统常量 switch 还支持 short、char、int、对应包装类型和枚举。Java 21 的模式 switch 又支持更广泛的引用类型,不能把旧式类型列表当成全部规则。

专注学习

答:可以,关键是保护内部状态。构造时不要直接保存外部可随意修改的对象,访问时也不要把内部可变对象泄露出去;需要时做防御性复制。final 只能固定字段的引用值,不能让被引用的集合、数组或其他对象自动不可变。

专注学习

答:hashCode() 返回一个 int 类型的哈希值,供 HashMap、HashSet 等哈希结构使用。它与 equals() 的核心约定是:在相关状态没有改变的前提下,相等对象必须给出相同哈希值;不同对象可以发生碰撞。哈希值不是身份证,不要求全局唯一。

专注学习

答:一维数组常用 Arrays.toString,嵌套对象数组常用 Arrays.deepToString。直接把普通数组交给 println,通常不会逐个打印元素,而是得到该数组对象的默认字符串表示。需要自定义格式时,可以遍历或使用适合的格式化逻辑。

专注学习

答:先明确“相同”是什么意思。如果两个对象按 equals() 判断相等,合规实现必须让它们的 hashCode 相同。如果指同一个对象在不同时间被修改,相等性相关状态变化后,哈希值可以变化;如果比较不同运行过程,也不能无条件要求数值不变。

专注学习
本页 10 道,共 69 道浏览其他领域