数组是 JavaSE 的基石,但很多人只懂“怎么写”不懂“怎么存”
很多初学者一上来就背数组的声明和循环,结果一旦遇到内存越界或深层排序逻辑就卡壳。这门课不讲花里胡哨的框架,就是死磕 JavaSE 最核心的数组与基础算法。它解决的是你代码写不出来、运行报错、或者写了排序却效率低下的问题。如果你连数组在内存里是怎么一块一块存数据的都不懂,后面学集合、多线程全是空中楼阁。这门课适合已经会写变量、类和 if 语句,但一碰数组初始化就晕,或者只会用 bubble sort 而不知道时间复杂度差异的同学。建议先看“初步认识数组”和“数组的初始化”,这两块能帮你建立正确的多维数组概念,避开“数组越界”这个新手高频坑。学完这部分,你应该能独立处理不定长数组输入、编写安全的二维数组遍历逻辑,并正确选择冒泡或选择排序来解决简单的数据有序化问题。资料包里的练习题不是用来“看懂答案”的,必须亲自敲一遍代码,跑通不同长度数组的排序,观察内存变化,这才是把知识变成肌肉记忆的关键。
内存模型决定写法,别再用“盒子装球”的错误直觉了
很多教程讲数组只讲怎么取值,但这门课特意把“内存中的数组”单独拿出来大篇幅讲,就是为了纠正误区。你得明白数组在内存里是连续的一块区域,而不是一个个散落的对象。如果不懂这块,你就不可能理解为什么数组长度必须是 int,为什么不能直接修改数组引用指向别的对象。这一节会带你深入看内存图,理解数组名其实是地址,元素才是数据。配合练习时,不要只盯着控制台输出,要尝试在脑海里画出数组扩容、复制时的内存指向变化。学完这一节,你才能理解为什么要用 System.arraycopy,为什么数组一旦扩容旧元素会保留。资料包里的练习设计就是针对这种内存操作的,比如手动模拟数组扩容过程,或者通过内存地址分析查找 bug。只有把内存模型吃透了,以后学 JVM 原理、对象数组和对象列表的区别才会顺畅,不会再看到代码报错一脸懵。
算法部分去伪存真,只练能用的排序和查找
课程后半段的冒泡排序和选择排序,不是让你去背代码实现的,而是为了让你理解“双循环”的本质和效率差异。市面上很多教程讲快速排序、归并排序,但作为 JavaSE 基础课,这里只讲最朴素的两种。目的是让你清楚什么时候该用哪种,比如数据量小且内存紧张时选谁,数据基本有序时选谁。顺序查找那块则是为了让你明白为什么二分查找需要“有序”的前提条件。学完这部分,你至少能独立写出针对特定场景的排序算法,并且能口头解释清楚为什么要嵌套循环。资料包里的练习会给你一组乱序数字,要求你用两种方法分别排序,并尝试分析谁快一点。别指望看完视频就觉得自己懂了,算法这东西,不看执行过程、不写代码绝对学不会。这门课的目标就是让你建立起对算法的直觉,以后遇到“把这一堆数据排好序”的需求,能迅速反应出该用什么策略,而不是盲目复制粘贴网上的代码。
课程目录
1 上章回顾 (29:23) 2 初步认识数组 (27:10) 3 数组的初始化 (27:56) 4 数组的使用 (25:24) 5 数组使用过程中可能会出现的问题 (15:56) 6 数组的使用练习 (08:25) 7 内存中的数组 (32:22) 8 冒泡排序 (33:25) 9 选择排序 (23:45) 10 顺序查找 (13:58)





