缺什么补什么:别在常用类上栽跟头
这门课解决的是 Java 基础阶段最容易眼高手低的一块:常用类与 API 文档查阅。很多转岗或自学的人,语法能写个大概,但一遇到字符串比较为什么用 equals 而不是等号、hashCode 和 equals 重写有什么绑定关系、clone 究竟是浅拷贝还是深拷贝,就开始凭感觉写代码。面试时被追问 Object 方法细节,或者读 JDK 源码时看不懂方法调用链,往往就是这里的缺口没补上。这门课不教花哨框架,就是老老实实把 Object、String 这些底层类的源码和方法逻辑掰开揉碎。它适合已经写过基本 Java 程序、能跑通循环和面向对象逻辑,但对 API 细节说不出所以然的人。如果你连基本语法都还没写利索,建议先补完面向对象再来看这季,否则容易卡在源码阅读上。不要假装自己都会了,底层类搞不懂,后面写业务代码全是坑。
建议先看哪几块,怎么配资料练
别按顺序从头刷,缺什么补什么。第一块建议先看 API 文档使用和源码查看那几节,这是工具能力,学会查官方文档比背方法签名管用。第二块重点啃 Object 类,尤其是 equals、hashCode、toString 这三个方法的重写逻辑。资料包里如果有示例代码,一定要自己在本地重写一遍 hashCode 和 equals,跑一下把对象放进 HashSet 看看去重效果。第三块是 String,别只记方法名,要搞清楚 String 不可变带来的内存影响,以及常用操作方法在源码层面是怎么实现的。练习时不要只看视频,配套的源码文件要自己改、自己断点调试,看方法调用栈,这样才算把资料用到位。看懂了不等于会写,必须敲代码验证。
学完能独立做什么,应能回答什么问题
学完这一季,你应该能独立给自定义类正确重写 equals 和 hashCode,能说清楚为什么不重写 hashCode 会导致 HashMap 出问题;能独立查阅 JDK API 文档找到陌生类的用法,而不是只会百度抄代码;能读懂 String 类常用方法的源码逻辑,知道什么场景该用 String。看完后问自己几个问题:两个 new 出来的相同内容 String,equals 和等号分别返回什么?clone 方法默认是浅拷贝,怎么实现深拷贝?finalize 方法在什么场景下会被调用,为什么不建议手动依赖它?如果这几个问题答得磕磕绊绊,就回去把对应章节再看一遍,别急着往下走。常用类这块不补扎实,后面集合框架和 IO 流会更吃力。别图快,把基础打牢才是正经事。
课程目录
1-1 [API的使用] API的使用 (17:27) 1-2 [API的使用] 查看JDK源码 (17:18) 1-3 [API的使用] 生成API文档 (30:13) 2-1 [Object] Object简介 (04:34) 2-2 [Object] getClass方法 (17:07) 2-3 [Object] equals方法 (14:28) 2-4 [Object] hashCode方法 (13:01) 2-5 [Object] toString方法 (09:40) 2-6 [Object] clone方法 (23:25) 2-7 [Object] finalize方法 (14:07) 3-1 [String字符串] String简介 (13:32) 3-2 [String字符串] String常用方法_1 (18:52) 3-3 [String字符串] String常用方法_2 (16:17) 3-4 [String字符串] String常用方法_总结 (06:20) 3-5 [String字符串] String新增方法 (05:52) 3-6 [String字符串] String练习_1 (10:24) 3-7 [String字符串] String练习_2 (10:49) 3-8 [String字符串] String练习_3 (23:15) 3-9 [String字符串] String练习_4 (10:45) 3-10 [String字符串] 字符集 (38:08) 3-11 [String字符串] 正则表达式简介 (17:05) 3-12 [String字符串] 正则表达式用法 (26:41) 3-13 [String字符串] String不变性 (05:59) 3-14 [String字符串] String常量池 (31:12) 3-15 [String字符串] StringBuffer用法 (22:31) 3-16 [String字符串] StringBuffer和StringBuilder的区别 (05:58) 3-17 [String字符串] String和StringBuffer性能对比 (05:45) 3-18 [String字符串] 练习_StringBuffer (06:57) 4-1 [包装类] 包装类 (10:07) 4-2 [包装类] 基本类型和包装类的转换 (12:00) 4-3 [包装类] 基本数据和String的转换 (12:38) 4-4 [包装类] 练习_包装类 (05:40) 5-1 [其他类] Date类 (23:37) 5-2 [其他类] SimpleDateFormat的使用 (17:31) 5-3 [其他类] 练习_Date (29:37) 5-4 [其他类] Calendar类 (28:08) 5-5 [其他类] 练习_Calendar (05:11) 5-6 [其他类] Math类 (12:31) 5-7 [其他类] Random类 (07:12)





