测试题(二)

11 equals 与 hashCode

equals 比较内容是否相同。

如果 equals 相同,hashCode 必须相同;否则哈希表结构(如 HashMap)会错误定位桶位。

重写 equals 时必须重写 hashCode。

12 值传递与引用传递(Java 是值传递)

Java 所有参数都是值传递。

基本类型传值拷贝;引用类型传地址拷贝,因此可以修改对象内容,但不能让外部引用指向新对象。

13 类初始化顺序

加载顺序:父类静态 → 子类静态 → 父类实例 → 父类构造 → 子类实例 → 子类构造。

始终从父类开始,保证结构完整。

14 本地方法栈

用于执行 Native 方法,存放局部变量、操作数等。

Native 方法用于调用底层 C/C++ 库或系统 API。

15 双亲委派机制

类加载时先交给父类加载器,如果父类无法加载,再由子类加载器处理。

目的:保证核心类库不被替换,避免重复加载。

16 重写与重载

重写发生在父类子类之间,方法签名一致,是多态。

重载发生在同一个类中,方法名相同但参数不同,用于功能增强。

17 super 必须在构造器第一句

构造器第一句必须是 super(...),否则编译报错。

如果不写,系统会自动插入 super() 调用父类无参构造。

18 instanceof

判断对象是否属于某类或其子类,用于类型检查与安全强转。

19 强制类型转换

基本类型强转会丢失精度(double 转 int)。

引用类型必须有父子关系才能强转,否则抛出 ClassCastException。

20 synchronized 可重入锁

同一个线程可以重复获得同一把锁,不会造成死锁。

JVM 用锁计数器实现重入机制。

相关推荐
郝学胜-神的一滴42 分钟前
Python 高级编程 026:内置数据结构之骈文纵论
开发语言·数据结构·python·程序人生·软件工程
隐积8 小时前
3.1.7.Qt容器大家族(3):QVariant——万能盒子
开发语言·qt
都叫我大帅哥11 小时前
Java JJWT 完全指南:从入门到生产级实践
java
名字还没想好☜11 小时前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
初级代码游戏12 小时前
iOS开发 Swift 速记1:变量和基本数据类型
开发语言·ios·swift
前端开发张小七12 小时前
Java 学习笔记 · 第一课:基础语法与核心概念
java·后端
酷在前行13 小时前
【R生态】PERMANOVA 进阶实战:距离选择、PERMDISP、两两比较与受限置换(保姆级教程)
开发语言·r语言
ThsPool13 小时前
【ENVI二次开发学习整理 04】ENVI功能扩展与二次开发
java·前端·javascript
cxr82813 小时前
Graphify vs GitNexus vs CodeGraph — 三工具架构深度对比
开发语言·架构·知识图谱
赤壁小虾13 小时前
【渲染流水线】[逐片元阶段]-[透明度测试]以UnityURP为例
java·前端·数据库