avatar
文章
378
标签
435
分类
13
首页
留言板
知识库
归档
标签
分类
关于
Dai Wei
搜索
首页
留言板
知识库
归档
标签
分类
关于

Dai Wei

Java 继承、方法重写与 final
发表于2017-07-24|Java
继承让类与类产生父子关系,子类免费获得父类的非私有成员,Java 由此搭起整个类体系。本篇讲清 extends 的 is-a 语义、继承的成员规则、构造方法的”先父后子”、方法重写的约束与 final 的三种用法,为多态铺路。 本篇目标 能用 is-a 原则判断该不该用继承 掌握单继承、多层继承的规则与继承的利弊 说清子类构造为什么”先父后子”,会用 super 掌握方法重写的规则与 @Override 的作用 记住 final 修饰类、方法、变量的三种语义 为什么需要继承先看痛点:分别定义 Cat 和 Dog,颜色、腿数、吃饭、睡觉各写一遍,改一个公共字段要动两个文件。把共性抽到 Animal 父类,让 Cat、Dog extends Animal,重复代码瞬间消失。继承的好处:提高复用性、提高维护性、让类与类产生关系——第三点是多态的前提。弊端同样明确:父类一变子类全受影响,耦合性增强。开发追求高内聚、低耦合,所以继承要用得克制,不能为了蹭部分功能而继承。 继承的规则:单继承与 is-aJava 只支持单继承(一个类只能有一个直接父类),但支持多层继承(A extend...
Java 面向对象:构造方法与静态成员
发表于2017-07-23|Java
构造方法决定对象”出生时的样子”,static 决定数据”属于类还是属于对象”。本篇讲透构造方法的调用时机与重载、代码块的执行顺序、static 的共享语义和工具类的标准写法,最后逐词拆解 main 方法签名。 本篇目标 掌握构造方法的格式、调用时机与重载规则 理清 new Student() 背后的完整流程 分清构造代码块与静态代码块的执行时机 理解 static 的”类级别共享”语义及访问限制 会写工具类,能逐词解释 main 方法签名 构造方法:对象一出生就初始化普通方法要建完对象再手动调,构造方法在 new 的瞬间由 JVM 自动调用,专门给属性赋初值。格式三个特点:方法名与类名完全一致(大小写也一样);没有返回值类型,连 void 都不写;方法体里不需要 return。 class Student { private String name; private int age; public Student() {} // 无参构造 public Student(Str...
Java 面向对象:类、对象与封装
发表于2017-07-22|Java
类是对象的模板,对象是内存中的实体。本篇讲透”定义类、创建对象、访问成员”这条主线,用内存布局说清栈、堆、方法区的分工,再落到封装、private 与 this 这三个最易含糊的概念上。 本篇目标 说清类与对象的关系,能独立写出标准类 描述 new Student() 执行后的内存布局 分清成员变量与局部变量的区别 理解封装动机,会用 private + getter/setter,明白 this 指向谁 从面向过程到面向对象面向过程关注”第一步做什么、第二步做什么”,自己动走完全部流程;面向对象先问”这件事该由谁来做”,把数据和行为装进对象,再指挥对象协作。洗衣服:面向过程是”接水、加洗衣粉、搓洗、晾晒”一步步来;面向对象是找到”洗衣机”对象,调用它的洗涤方法。角色从执行者变成指挥者,复杂的事被拆给不同对象去办——面向对象开发就是不断创建对象、使用对象、指挥对象做事,这片土壤上长出封装、继承、多态三大特征。 类与对象:模板与实例现实事物用”属性 + 行为”描述:属性是名词,行为是动词。Java 用 class 描述事物,成员变量对应属性,成员方法对应行为。类是一...
Java 数组基础与常见操作
发表于2017-07-21|Java
这是 Java 入门系列的第五天。前四天我们的变量一次只能装一个值,今天学习第一个”容器”——数组:一次声明就能管理一批同类型数据,它也是后面所有集合框架的底层基石。 本篇目标 理解数组的内存模型:堆中连续空间 + 栈中引用 掌握数组的三种定义与初始化方式 独立完成遍历、取最值、反转、查找等基本操作 会用 Arrays 工具类,理解二维数组”数组的数组”本质 讲清 Java 参数传递为什么”基本类型不改、数组会改” 为什么需要数组要存 50 个学生的成绩,定义 50 个 score1…score50 吗?显然不行——无法批量处理,也应对不了”人数不定”的情况。数组解决的就是这个问题:用一块连续的内存,存储同一种数据类型的多个值,通过下标统一访问。数组既能装基本类型,也能装引用类型。 数组的内存模型先补一点 JVM 内存常识(入门阶段记住两块即可): 栈:存放局部变量(方法里声明的变量),方法结束即弹栈销毁。 堆:存放所有 new 出来的东西,由 JVM 管理,没有任何引用指向时才被垃圾回收。 看一行代码: int[] arr = new int[3]; 这行代码实际发...
Java 循环与流程控制
发表于2017-07-21|Java
这是 Java 入门系列的第四天。顺序结构让程序从上往下走,选择结构让程序拐弯,今天要学的循环结构则让程序”重复”——这是计算机最擅长的事:不知疲倦地把一件事做一万次。 本篇目标 掌握 for、while、do-while 的语义差异与选型原则 理解嵌套循环”外行内列”的模型,能打印常见图案 说清 break、continue、return 的真实语义和标号的用法 完成两个经典练习:九九乘法表与素数判断 for:次数已知时的首选for (int i = 1; i <= 10; i++) { System.out.println("第 " + i + " 次 Hello");} 执行顺序是四步循环:初始化(只执行一次)→ 判断条件(false 则结束)→ 执行循环体 → 执行迭代语句 → 回到判断。三个表达式把”从哪开始、到哪结束、每次怎么走”写在同一行,结构一目了然——这正是次数已知时优先用 for 的原因。 两个基础练习背后是两种重要的思想模式: 累加思想:求 1~100 的和,套路是”循环外定义累...
Java 运算符与条件控制
发表于2017-07-19|Java
这是 Java 入门系列的第三天。前两天我们能把数据存进变量了,今天让程序”动起来”:用运算符对数据做计算,用 if 和 switch 让程序根据条件选择不同的执行路径,再学会用 Scanner 接收键盘输入,写出第一个能和人交互的程序。 本篇目标 掌握算术、关系、逻辑、位四类运算符的语义与常见坑 说清 && 与 & 的短路差异及其工程意义 理清三元运算符、if、switch 的适用边界 用 Scanner 完成键盘录入,写出交互式程序 算术运算符+ - * / %,外加自增自减 ++ --。两个高频考点: 整数除法与取余:/ 两边都是整数时结果仍是整数(直接舍去小数部分),想要小数结果必须让运算中出现浮点数;% 取余数,结果的符号只跟左边有关——-5 % 3 得 -2,5 % -3 得 2。一个实用规律:任何正整数 % 2 的结果非 0 即 1,常用来做奇偶判断和状态切换。 ++ 的前置与后置:单独使用时 a++ 与 ++a 没有区别;参与运算时,前置先自增再参与,后置先参与再自增。 int x = 4;int y = (x++) + (++x) ...
Java 数据基础:进制、常量与变量
发表于2017-07-18|Java
这是 Java 入门系列的第二天。配置好环境之后,今天进入语言的地基:计算机为什么用二进制和补码表示数据,常量与变量有什么区别,八种基本数据类型怎么选,以及类型转换中那些”丢精度”的坑。 本篇目标 理解进制的本质与二进制的物理动机,熟练做进制转换 讲透原码、反码、补码,明白计算机为什么统一用补码 掌握常量、变量的概念与八种基本数据类型的取值范围 理清自动类型提升与强制类型转换的规则和代价 进制:逢几进一的计数游戏进制的本质是”逢 X 进一”。十进制逢十进一,源于人类有十根手指;一周七天是七进制,一年十二个月是十二进制。任何一个数都可以按”位权”展开,例如十进制的 123 其实是: 123 = 1×10² + 2×10¹ + 3×10⁰ 任意进制转十进制遵循同一个公式:系数 × 基数的权次幂之和(权从右往左、从 0 开始编号)。比如二进制 0b110: 0b110 = 1×2² + 1×2¹ + 0×2⁰ = 4 + 2 + 0 = 6 反过来,十进制转任意进制用”除基取余、倒序排列”:把 6 不断除以 2,余数依次是 0、1、1,倒过来写就是 110。 计算机为什么用二...
Java 开发入门:环境、工具与 Hello World
发表于2017-07-17|Java
这是 Java 入门系列的第一天。这一篇解决三个问题:计算机软硬件的基本常识、Java 凭什么”一次编写,到处运行”,以及如何亲手把第一个 Hello World 从源代码变成屏幕上的一行输出。 本篇目标 了解计算机硬件的五大部件与软件分类,建立”程序跑在哪里”的直觉 讲透 JDK、JRE、JVM 三者的关系与跨平台原理 理解 Path、JAVA_HOME 环境变量背后的原理,而不是照抄配置步骤 完整走通”编写 → 编译 → 运行”Hello World 的全流程,并能排查常见错误 先懂一点计算机常识计算机由硬件和软件组成,没装任何软件的机器称为”裸机”。硬件按冯·诺依曼体系结构分为五大部件: 运算器 + 控制器:合称 CPU,是计算机的核心。运算器做算术与逻辑运算,控制器负责取指令、译码并发出控制命令,CPU 内部还有高速寄存器暂存数据。 存储器:分内存与外存。内存(RAM)速度快、容量小、断电即失,用于存放正在执行的程序和数据;外存(硬盘、SSD)相反,用于长期保存。程序必须先装入内存才能被 CPU 执行——这解释了为什么”内存大小”直接影响电脑的流畅度。 输入设备 ...
1…3738
avatar
Dai Wei
软件开发者,记录技术探索与实践
文章
378
标签
435
分类
13
Follow Me
公告
分享软件开发、工程实践与持续学习中的思考。
最新文章
AI 代码评审怎么做得又准又省:确定性流水线 + Agent 的混合架构实践2026-09-20
Trae + MiniMax 多场景实战:Redis 故障排查与跨语言重构2026-08-28
Kimi K3 实战:全栈项目、Java 项目改造与 3A 游戏 Demo2026-08-23
测试开发学习路线(2026 最新版):AI 时代如何从测试走向质量工程2026-08-20
IDEA + Qoder 插件多场景实战:接口优化与代码重构2026-08-18
分类
  • AI 编程28
  • Java103
  • 人工智能39
  • 分布式系统26
  • 学习路线5
  • 开发工具11
  • 技术动态1
  • 数据库42
标签
Random类 Paxos AGENTS.md Static关键词 阻塞 redo log 跳表 DBMS 关键字 Kimi 对象流 消息推送 虚拟线程 TIME_WAIT 知识库 实时 Agent Seata 学习笔记 操作系统 DNS 滑动窗口 异常 并行 学习规划 Java26 原子广播 final关键字 Workflow JWT GROUP BY Java14 AI 编程 Runtime 单例设计模式 工程化 敏感词 第三方模型 备份 Linux 代码审查
归档
  • 九月 2026 1
  • 八月 2026 7
  • 七月 2026 7
  • 六月 2026 6
  • 五月 2026 7
  • 四月 2026 6
  • 三月 2026 4
  • 二月 2026 5
网站信息
文章数目 :
378
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2017 - 2026 By Dai Wei框架 Hexo 8.1.2|主题 Butterfly 5.7.0
搜索
数据加载中