这门课解决什么工作场景与核心痛点

很多做后端业务的人,平时写增删改查很顺,但一遇到团队协作排错、或者接手老项目,就容易卡在编译和包结构上。这门常用类库实践课的切入点很具体,它不是泛泛讲语法,而是把 final、package、import、访问权限、static 这几块放在一起拆。它们决定了你能不能看懂别人写的工具类、能不能把一个类正确地暴露给其他模块、能不能避免静态变量在并发下被改乱。在真实工作场景里,新人接手项目经常因为包导错、权限修饰符用错导致编译失败,或者因为不懂静态变量的内存共享机制,写出数据串号的严重缺陷。这门课就是帮你把这些写代码时最常踩的底层坑提前填平。如果你写过 Java,但说不清 protected 和默认权限在跨包调用时的确切差别,或者对静态内存图只有模糊印象,这门课值得停下来认真补一补。

适合什么基础与建议的学习顺序

资料适合已经能写简单类和对象、但还没在真实项目里踩过权限和包管理坑的读者。如果你刚学完变量、循环、面向对象基础,直接看这块会比硬背文档有效。学习门槛不高,但需要你跟着敲代码验证。建议的观看顺序是:先看 final 那几段,理解常量定义和不可变引用的边界,明白哪些场景下类不能被继承、变量不能被重新赋值;接着看包定义和 import 机制,搞懂物理文件夹与逻辑包名的对应关系;然后重点看访问权限两段,对照自己写过的类,想清楚哪些方法该公开、哪些该锁在包内;最后啃静态修饰变量、方法及内存图那几段,这是后续看工具类源码的基础。静态部分绝对不要快进,内存图那段尤其要跟着画一遍,弄明白方法区、堆、栈之间静态变量到底是怎么共享的,死记硬背在这里完全行不通。

学完能独立做什么与资料配合练习的方法

学完之后,你应该能独立给一个小模块定包结构,决定哪些类对外可见、哪些只做内部实现;能说清楚 static 修饰的变量和方法在多实例下的行为,遇到工具类不用每次新建对象;能读懂别人项目里 final 配合 static 的写法,不再觉得是炫技。在练习配合上,建议每看完一节就自己写一个最小验证例子:定义一个带包名的类,故意把权限设错,看编译器报什么错,再回头改;写一个静态计数器类,多 new 几个对象观察计数值怎么变化。资料里的代码片段别只看,自己逐字敲一遍、改一改访问范围,比单纯听讲记得牢。这门课不追求让你立刻能独立开发完整系统,但它是后面写底层工具类、阅读开源框架源码时少踩坑的前提。把基础打扎实,后续进阶才不会觉得吃力。

课程目录

课程目录35 集
  • 1-1 [final.import包.static关键字] 01_final (16:26).mp4
  • 1-2 [final.import包.static关键字] 02_包定义及package (04:23).mp4
  • 1-3 [final.import包.static关键字] 03_import (07:20).mp4
  • 1-4 [final.import包.static关键字] 04_访问权限1 (13:13).mp4
  • 1-5 [final.import包.static关键字] 05_访问权限2 (06:36).mp4
  • 1-6 [final.import包.static关键字] 06_静态修饰变量 (15:51).mp4
  • 1-7 [final.import包.static关键字] 07_静态修饰方法 (08:35).mp4
  • 1-8 [final.import包.static关键字] 08_静态修饰变量特点及内存图 (25:18).mp4
  • 1-9 [final.import包.static关键字] 09_静态代码块定义 (02:45).mp4
  • 1-10 [final.import包.static关键字] 10_静态代码块执行特点 (05:41).mp4
  • 2-1 [String类及StringBuilder类] 11_课程目标 (02:36).mp4
  • 2-2 [String类及StringBuilder类] 12_API及使用 (11:02).mp4
  • 2-3 [String类及StringBuilder类] 13_Object类方法简介&toString()简介 (13:22).mp4
  • 2-4 [String类及StringBuilder类] 14_toString重写 (05:52).mp4
  • 2-5 [String类及StringBuilder类] 15_hashcode方法 (09:30).mp4
  • 2-6 [String类及StringBuilder类] 16_equals方法 (11:49).mp4
  • 2-7 [String类及StringBuilder类] 17_Person类重写toString()&eqauls (10:22).mp4
  • 2-8 [String类及StringBuilder类] 18_String类重写了toString&equals (08:51).mp4
  • 2-9 [String类及StringBuilder类] 19_字符串的特殊性及本质 (08:38).mp4
  • 2-10 [String类及StringBuilder类] 20_字符串内存图 (08:40).mp4
  • 2-11 [String类及StringBuilder类] 21_字符串值不可更改 (03:03).mp4
  • 2-12 [String类及StringBuilder类] 01_作业 (14:34).mp4
  • 2-13 [String类及StringBuilder类] 02_创建字符串对象 (13:49).mp4
  • 2-14 [String类及StringBuilder类] 03_字符串方法(判断方法) (18:40).mp4
  • 2-15 [String类及StringBuilder类] 04_字符串获取方法(length&concat) (09:11).mp4
  • 2-16 [String类及StringBuilder类] 05_字符串获取方法2(charAt&indexOf) (06:22).mp4
  • 2-17 [String类及StringBuilder类] 06_字符串获取方法3(substring) (08:32).mp4
  • 2-18 [String类及StringBuilder类] 07_字符串转换的方法 (14:37).mp4
  • 2-19 [String类及StringBuilder类] 08_字符串案例一(首字母大写) (05:39).mp4
  • 2-20 [String类及StringBuilder类] 09_字符串案例二(个数统计) (22:28).mp4
  • 2-21 [String类及StringBuilder类] 10_字符串案例三(统计小串出现次数) (12:11).mp4
  • 2-22 [String类及StringBuilder类] 11_字符串方法之split (18:38).mp4
  • 2-23 [String类及StringBuilder类] 12_replace方法 (11:37).mp4
  • 2-24 [String类及StringBuilder类] 13_matches方法 (12:31).mp4
  • 2-25 [String类及StringBuilder类] 15_字符串案例三(方法抽取) (05:05).mp4