测试题(二)

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 用锁计数器实现重入机制。

相关推荐
Lhappy嘻嘻4 小时前
Java IO|File 文件操作 + 字节流 / 字符流完整笔记 + 递归删除文件实战
java·笔记·php
科技道人4 小时前
记录 默认置灰/禁用 app ‘Search Engine Selector‘ 的disable按钮
开发语言·前端·javascript
伊玛目的门徒4 小时前
试用leetcode之典中典 二数之和问题
java·算法·leetcode
逝水无殇6 小时前
C# 异常处理详解
开发语言·后端·c#
懒鸟一枚7 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
玖玥拾8 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
铅笔侠_小龙虾8 小时前
Rust 学习目录
开发语言·学习·rust
我命由我123458 小时前
执行 Gradle 指令报错,无法将“grep”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
考虑考虑8 小时前
Sentinel安装
java·后端·微服务
云泽8089 小时前
从零吃透 C++ 异常:抛出捕获、栈展开、异常重抛与编码规范详解
开发语言·c++·代码规范