学习Java数组时,我感受到它作为数据结构的基石,既直观又充满细节。通过静态初始化int arr = {1,2,3}和动态初始化new int5的对比,我理解了数组的固定长度特性。遍历时,传统for循环和增强for循环的灵活运用,让我体会到代码的简洁性。但多维数组(如二维矩阵int matrix)的嵌套逻辑仍让我偶尔混淆行列索引,需通过画图辅助理解。实践环节中,编写计算平均值、查找极值的程序,让我意识到数组操作与算法的紧密关联,但也因越界问题频繁调试,深刻记住了“索引从0开始”的铁律。
面向对象的入门像打开新世界的大门。类的抽象(如User类封装姓名、年龄)让我从“过程式思维”转向“对象交互思维”。然而,封装、继承、多态三大特性初学时宛如迷雾:曾纠结于private字段为何不能直接访问,直到通过getter/setter方法理解数据保护的意义。尝试用继承构建“动物-猫狗”类层次时,子类重写方法的逻辑混乱让我意识到设计合理性的重要。
计算机网络的学习如同探索迷宫。OSI七层模型和TCP/IP协议簇的抽象概念(如三次握手、子网划分)让我倍感压力。虽然通过Wireshark抓包观察数据流,但对路由选择、拥塞控制等底层机制仍一知半解。局域网搭建实验时,交换机的VLAN配置错误导致连不通,暴露了理论脱离实践的短板。
软件工程的课程让我看到编程之外的系统工程。需求分析阶段,因忽视用户真实场景而设计的功能频繁返工,深刻体会“准确沟通比编码更重要”。尝试用UML画用例图时,类关系的箭头方向混淆不清,直到小组讨论厘清依赖与聚合的区别。敏捷开发中迭代交付的理念,颠覆了我对“一次性完成”的认知,但如何在时间压力下平衡质量与进度仍是难题。