费曼学习法和项目

什么是Java中的多态性

多态性允许不同类的对象对同一消息作出响应,主要通过方法重写和方法重载实现。运行时多态通过继承和接口实现,编译时多态通过方法重载实现。

final关键字的作用

final修饰变量表示常量,修饰方法表示不可被子类重写,修饰类表示不可被继承。final变量必须在声明时或构造函数中初始化。

String、StringBuilder和StringBuffer的区别

String是不可变字符序列,每次修改会生成新对象。StringBuilder和StringBuffer是可变的,StringBuilder线程不安全但性能更高,StringBuffer线程安全但性能较低。

抽象类和接口的区别

抽象类可以包含普通方法和抽象方法,接口只能有抽象方法(Java 8后支持默认方法)。抽象类单继承,接口多实现。抽象类用于代码复用,接口用于定义行为规范。

Java异常处理机制

异常分为Checked Exception(编译时检查)和Unchecked Exception(运行时异常)。try-catch-finally用于捕获处理异常,throws用于声明可能抛出的异常,throw用于主动抛出异常。

垃圾回收机制

Java通过GC自动管理内存,主要回收堆内存中无引用的对象。常见算法有标记-清除、复制、标记-整理和分代收集。System.gc()可建议触发回收,但不保证立即执行。

线程的创建方式

继承Thread类并重写run方法。实现Runnable接口并传入Thread构造器。实现Callable接口结合FutureTask获取返回值。线程池管理线程生命周期。

synchronized和Lock的区别

synchronized是关键字,自动释放锁,不可中断等待。Lock是接口,需手动释放锁,支持超时和中断,提供公平锁和非公平锁选项。

HashMap的工作原理

基于数组和链表/红黑树实现,通过hashCode计算索引,解决冲突使用链地址法。当链表长度超过8且数组容量≥64时转换为红黑树。负载因子默认0.75触发扩容。

Java中的值传递

Java只有值传递。基本类型传递值副本,引用类型传递引用的副本(即对象地址的拷贝),因此方法内修改引用指向的对象会影响原对象,但修改引用本身不影响原引用。

修改项目。

相关推荐
xifangge20251 天前
jdk版本不一样怎么办?一台电脑如何完美共存 JDK 8/11/17/21?多版本无缝切换与 IDEA 环境隔离实战指南
java·开发语言·jdk·intellij-idea
我是一颗柠檬1 天前
【JDK8新特性】方法引用与构造器引用Day3
java·开发语言·后端·intellij-idea
我是一颗柠檬2 天前
【JavaSE全面教学】Java集合框架下Day13(2026年)
java·开发语言·intellij-idea
编程牛马姐2 天前
2026年Reddit养号指南:养号四个阶段实操
python·spring·intellij-idea
我是一颗柠檬2 天前
【JDK8新特性】函数式接口Day2
java·开发语言·后端·intellij-idea
yychen_java3 天前
IDEA × Qoder:告别“手写Spring”,进入AI协作开发新时代
人工智能·spring·intellij-idea
wh_xia_jun3 天前
用pom 的test 配置 与 jacoco
java·ide·intellij-idea
铁打的阿秀3 天前
IDEA启动项目报错: 加载主类 com.seeburger.webedi.system.SystemApplication 时出现 LinkageError
java·ide·intellij-idea
wh_xia_jun3 天前
给小白的 Maven 命令行执行测试 完整指南
git·maven·intellij-idea
我命由我123453 天前
PHP - PHP 基本随机数生成函数
开发语言·ide·后端·java-ee·php·intellij-idea·intellij idea