jdk是开发工具包,含jre及编译器等;jre是运行环境,仅含jvm和类库。==比较值(基本类型)或地址(引用类型);equals默认同==,但string等重写后比较内容。

直接读,别绕弯子。
先抓核心模块再补细节
Java基础面试题不是按顺序背的流水账。建议按知识域分块推进:
- 先过JDK/JRE区别、==与equals本质、String常量池、自动装箱拆箱——这四类几乎每场面试必问
- 再理清楚基本类型和包装类内存行为差异(比如Integer缓存-128~127、int默认0而Integer默认null)
- 接着吃透面向对象四大特性在代码中的体现,尤其注意多态调用时方法绑定时机(编译看声明,运行看实际类型)
- 最后梳理泛型上下界(PECS原则)、hashCode与equals契约、深浅拷贝场景——这些属于进阶辨析点
边读边动手验证
光看解析容易似懂非懂。遇到关键点立刻写两行代码跑一跑:
- 比如看到“new Integer(127) == new Integer(127) 是 false”,马上敲出来试试
- 看到“String s1 = “abc”; String s2 = “abc”; s1 == s2 是 true”,也亲手验证下
- 对equals重写规则有疑问?就照着Cat类例子补上@Override和逻辑,看结果变不变
对照真实面试节奏来练
面试官不会问“请背出八种基本类型大小”。他们更可能说:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- “如果两个对象hashCode相同,equals一定true吗?” → 这是在考你对哈希契约的理解
- “ArrayList里放Integer,循环中用==比较会出什么问题?” → 实际编码陷阱
- “为什么重写equals必须重写hashCode?” → 底层机制关联性
读题时,把自己当成被问的人,先想怎么答,再看解析是否匹配你的思路。
把答案转化成自己的语言
标准答案只是参考。真正能记住的,是你用自己的话讲清楚的逻辑:
- 不说“Integer有缓存”,而说“-128到127之间的Integer对象复用堆里同一个实例”
- 不背“封装是隐藏实现细节”,而说“private字段+public getter/setter,外部只能按你定的规则改值”
- 解释GC时不提“可达性分析算法”,而说“从栈里的引用出发,找不到的对象就被回收”
讲得顺,才真懂;讲得准,才稳。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










