day21
今天:先学习 Java 方法的值传递机制,之后完成四项综合实操练习。值传递是 Java 唯一的参数传递方式,基础类型传入参数时拷贝真实数值,方法内修改形参不会影响原始变量;引用类型传递堆内存地址副本,形参可以操作原对象的数据,但重新给形参赋值不会改动原本地址。综合练习分别为机票购买逻辑、质数检索、随机验证码生成、独立数组拷贝。机票练习需要使用分支语句区分年龄,设置不同票价标准;质数练习依靠循环判定数字除 1 和自身之外不存在其他因数;验证码练习拼接随机数字、大小写字母;数组拷贝要新建数组,循环迁移全部元素,杜绝直接地址赋值。经过学习我打通了参数传递和数组内存知识,清楚为什么数组作为方法参数后,内部改动会作用于原数组。各项实操锻炼我拆分功能、封装独立方法的习惯,把复杂任务拆解成小块方法,降低代码的冗余程度,也方便后期排查代码故障。
在家里哪也没去。
问题及解决方案:我练习过程中遇到三处很耗费时间的难题。一开始我误以为引用类型传参就是引用传递,尝试在方法里面将数组形参指向全新数组,疑惑原数组没有发生变化。之后我反复翻看值传递知识点,明白只是拷贝了地址副本,形参只是局部变量,更换它的指向不会影响外层变量,只能修改地址对应的堆内元素。做质数代码的时候经常忘记处理数字 2 这类特殊质数,循环起始下标设置出错,直接导致程序判断出错。我现在先单独处理小于 2 的非质数,再开启循环校验。做数组复制练习图省事直接相等赋值,两个数组共用一块堆空间。我现在固定流程,先创建长度一致的空数组,循环遍历原数组完成逐个赋值,保证两份数组相互独立,几次训练之后参数传递相关的失误已经少了很多。
明天:学习Java的练习案例,练习应用。

浙公网安备 33010602011771号