假期学习5
第5天:数组
对应章节:第3章
(1)今天做了什么: 学习了数组的两种初始化:静态int[] a = {1,2,3}和动态int[] a = new int[5]。理解了数组的内存模型——栈内存存引用变量,堆内存存实际元素。二维数组本质是"数组的数组",支持锯齿数组(各行长度不同)。Arrays工具类是今天的收获:sort排序、binarySearch二分查找、toString快速打印、copyOf复制。练习:实现了数组的插入(后移元素腾位置)、删除(前移覆盖)、反转(双指针对调)操作,编写了杨辉三角和矩阵转置程序。
(2)明天准备做什么: 进入第4章面向对象——类与对象的概念、成员变量与局部变量的区别、构造器的定义与重载、this关键字的两大用法、方法参数的值传递机制。设计Person类练习。
(3)遇到的问题: Arrays.binarySearch对未排序的数组使用返回了负数——二分查找的前提是数组必须已排序,需先调用sort。二维数组int[][] arr = new int[3][]表示分配3行但每行长度未定,理解为"3个int[]引用"。杨辉三角越界因为循环条件写成j <= i导致访问了不存在的索引,改为j < i解决。注意数组长度是属性.length,字符串长度是方法.length(),容易写错。
浙公网安备 33010602011771号