7.20

一、今日学到内容

  1. Java 基础规范
    public 类名与文件名一致,main 方法是程序唯一入口,三种注释用法。
  2. 变量与 8 大基础类型
    区分局部 / 成员 /static/final 变量,自动、强制类型转换规则。
  3. 运算符、分支、循环
    自增、逻辑短路、三元运算符;if、switch、for/while/do-while,break/continue 作用。
  4. 数组
    固定长度,下标从 0 开始,普通 for 与增强 for 两种遍历。
  5. 方法与构造
    方法格式、重载规则;构造方法用于初始化,有参构造会覆盖默认无参构造。
  6. Java 独有的、和 C/C++ 差异知识点
    1)纯面向对象:所有代码写在类内,无全局函数 / 变量;C/C++ 支持类外代码。
    2)无指针,靠引用操作对象,自动 GC 垃圾回收,不用手动 new/delete 释放内存。
    3)单继承,靠接口实现多扩展;C++ 支持多继承,无 interface。
    4)String 不可变,用 equals 对比内容;C 字符数组、C++string 可变,靠 strcmp 比较。
    5)final 关键字:常量、锁方法、禁继承;C/C++ 只有 const,功能单一。
    6)private/protected 无友元,强制封装;C++friend 可突破访问限制。
    7)try-catch-finally 完整异常体系;C/C++ 靠返回值、简单 catch 处理错误。
    8)抽象类 abstract、接口,C/C++ 仅用纯虚函数模拟,无对应关键字。

二、思维层面问题

  1. C/C++ 惯性思维难扭转,总用指针、全局变量思路写 Java,不适应 GC、无指针设计。
  2. 面向过程思路根深蒂固,不会用类和对象抽象需求,习惯把所有代码堆在 main 里。
  3. 混淆 Java 栈 / 堆 / 方法区内存模型,和 C 内存分区弄混,看不懂 == 地址对比底层逻辑。
  4. 沿用 C 错误码判断逻辑,缺少主动捕获异常的意识,觉得 try-catch 多余。
  5. 分不清 static 静态变量与 C 全局变量区别,频繁出现静态访问非静态成员逻辑错误。
  6. 习惯 C 宏、多继承写法,不会用 final 常量、接口做代码解耦与复用。
  7. 缺少安全预判思维,容易忽略空引用、数组越界等 Java 特有运行隐患。

三、改进方案

  1. 整理 Java 与 C/C++ 核心差异笔记,每天复盘,摒弃旧语言思维定式。
  2. 写代码优先抽象实体类,成员变量私有化,拆分方法,拒绝堆砌代码。
  3. 吃透 Java 内存分区与 GC 原理,遇到内存相关问题从底层推导,不死记结论。
  4. 编码主动预判异常场景,熟练使用 try-catch,适应 Java 异常处理体系。
  5. 专项练习接口、final、抽象类等独有语法,减少对 C 特色语法依赖。

四、执行计划

  1. 每日 20 分钟:10 分钟对比语言差异,10 分钟手写面向对象练习。
  2. 记录跨语言混淆类错题,隔天回看巩固。
  3. 分模块突破内存、字符串、继承接口、异常四大差异板块。
  4. 验收:能清晰区分 Java 与 C/C++ 核心区别,独立写出规范面向对象代码。
posted @ 2026-07-20 21:17  刘秋实  阅读(9)  评论(0)    收藏  举报