第22章 Java 基础技术回顾:21 章精华速览

发布时间:2026/9/19 13:29:51

第22章 Java 基础技术回顾:21 章精华速览 第22章 Java 基础技术回顾21 章精华速览从Hello World到学生信息管理系统Java 基础入门系列 21 章已经全部讲完。这一章不教新知识而是把 21 章的内容串成一条线做一次系统回顾。把这一章的每一条都看懂你的 Java 基础就算真正过关了。本系列按 JDK 8、JDK 11、JDK 17 三个 LTS 版本讲解三个版本的基础语法完全一致只有文中特别标注如 switch 箭头写法、record、sealed、文本块的特性需要 JDK 17。一、语法地基从环境搭建到方法第 1~8 章1. 开发环境与第一个程序Java 跨平台的秘密是JVM一次编译到处运行开发用JDK含编译器 javac运行只需要JRE三步走写代码 →javac编译 →java运行程序结构固定类名与文件名一致入口是public static void main(String[] args)publicclassHello{publicstaticvoidmain(String[]args){System.out.println(Hello Java);// println 换行、print 不换行、printf 格式化}}2. 变量与数据类型8 种基本类型byte、short、int、long、float、double、char、boolean整数默认int小数默认doublelong加 Lfloat加 F基本类型存值引用类型存地址——这是理解 Java 一切内存话题的起点小转大自动转换大转小强制转换可能丢精度金额计算用BigDecimal包装类比较内容用equals不用3. 运算符整数除法取整、%取余判断奇偶、取某位数字很好用比较基本类型的值引用类型比较内容一律用equals、||有短路特性判空场景非常好用4. 流程控制if适合范围判断switch适合固定值判断经典 switch 别忘了breakJDK 17 的-写法自动 breakfor次数确定、while次数不确定、do-while至少执行一次break结束循环、continue跳过本次、return结束方法循环三件事想清楚变量初始化、条件边界还是、变量更新避免死循环5. 数组长度固定、下标从 0 开始、越界抛ArrayIndexOutOfBoundsException只读遍历用 foreach需要下标或改元素用普通 forArrays工具类sort、binarySearch、toString、copyOf二维数组是数组的数组每行可独立、可不等长6. 方法定义、重载与递归方法封装重复逻辑定义一次调用多次Java 是值传递形参永远拿到实参的拷贝引用类型通过拷贝的地址可以改对象内容重载 同名不同参数列表与返回值无关精确匹配优先可变参数本质是数组必须放参数列表最后递归必须有出口警惕栈溢出能用循环改写就优先用循环二、面向对象四大核心第 9~13 章7. 类与对象类是模板对象是实例new创建对象引用变量存堆中对象的地址属性描述状态方法描述行为成员变量有默认值局部变量必须初始化构造器与类同名、无返回值、new时自动调用this指当前对象static属于类、全类共享一份静态方法不能直接访问实例成员对象数组要先 new 数组再逐个 new 元素否则空指针8. 封装与访问控制封装 private属性 公开 getter/setter方法内校验数据合法性访问级别从宽到窄public→protected→ 默认 →private最小暴露JavaBean public 类 private 属性 getter/setter 无参构造器是框架协作的基础属性一律 private读写走 getter/setter——封装的核心习惯9. 继承extends复用父类非私有成员单继承、可多层继承一切类继承自Object重写Override签名一致、权限不缩水建议加Overridesuper访问父类成员/构造器构造器先父后子super()必须第一行equals与hashCode要成对重写10. 多态多态 父类/接口引用指向子类对象 方法重写运行时看实际对象调方法动态绑定编译期看引用类型向上转型自动安全向下转型必须先instanceof判断否则抛ClassCastException一句话多态是实例方法的特权变量和静态方法不参与动态绑定11. 抽象类与接口抽象方法只有声明没有实现含抽象方法的类必须声明为抽象类不能new接口是纯规范方法默认public abstract变量默认public static final一个类可实现多个接口抽象类描述是什么接口描述能做什么优先用接口JDK 8 起接口支持default和static方法JDK 17 可用sealed限定继承名单模板方法模式抽象类定骨架final 模板方法 钩子方法子类填细节三、常用类与集合第 14~18 章12. String 与 StringBuilder字面量存常量池可复用new一定新对象内容比较用equalsString 不可变 → 线程安全、可缓存哈希但拼接慢循环拼接用StringBuilder单线程或StringBuffer多线程常量字符串放equals左边防空指针判空先判 nullJDK 11 新增isBlank、strip、repeat、lines等便捷方法13. 异常处理Throwable之下分Error不可处理和Exception可处理运行时异常是代码 bug不强制处理检查型异常必须 try-catch 或 throwsfinally收尾先于 return 执行但别在 finally 里 returntry-with-resources 自动关闭资源throw主动抛出throws声明抛出业务错误可自定义异常继承 RuntimeException最佳实践捕获具体异常、不空 catch、记录日志、资源必关14. 集合框架List 与 SetList 有序可重复ArrayList查询快 /LinkedList增删快Set 不可重复HashSet无序 /LinkedHashSet保序 /TreeSet排序自定义类进 HashSet 必须重写hashCodeequals遍历集合别在增强 for 中修改删除用Iterator.remove()或倒序 forArrayList 自动扩容默认容量 101.5 倍增长JDK 11/17 的List.of不可变15. 集合框架Map增删改查put/get/remove/containsKey遍历推荐entrySet或forEach避免 keySet get 二次查询HashMap 底层是数组链表红黑树查询 O(1)put/get 靠 hash 定位、equals 找键自定义类当 key 必须重写 hashCode equals且 key 不要被修改多线程用ConcurrentHashMapJDK 11/17 的Map.of不可变、不能 null16. 泛型入门泛型限定集合/类的类型编译期检查免强转泛型类class BoxT、泛型方法T 返回类型 方法名、泛型接口? extends T上限偏读? super T下限偏写PECS 记读写方向泛型运行期擦除不能new T()、不能建泛型数组、不能instanceof T基本类型用包装类static 成员不能用类泛型要用泛型方法四、IO 与多线程第 19~20 章17. IO 流流是数据传输通道输入/输出相对程序而言字节流管一切文件字符流管文本缓冲流内部有大缓冲区批量读写性能高字符流要 close或 flush才会真正落盘复制文件缓冲数组 循环 read/write注意write(buffer, 0, len)只写有效长度编码统一 UTF-8大文件别用readAllBytes一次性读进内存用 try-with-resources 自动关闭资源18. 多线程入门进程是资源分配单位线程是 CPU 调度单位线程共享进程内存创建线程继承 Thread / 实现 Runnable推荐/ LambdaJDK 8start()开新线程且只能调一次run()只是普通方法调用生命周期新建 → 就绪 → 运行 → 阻塞/等待 → 死亡多线程共享数据有安全风险count不是原子操作用synchronized加锁或用原子类/并发容器sleep不释放锁wait释放锁必须在 synchronized 内靠 notify 唤醒五、综合实战第 21 章第 21 章用学生信息管理系统把前面所有知识串起来类设计Student封装属性getter/setter、StudentService增删改查逻辑、主程序菜单交互集合用 ArrayList 存学生数据IO文件读写实现数据持久化保存到文件、启动时加载流程控制while 菜单循环 switch 功能分支易错点nextInt后要补nextLine()吃掉换行符数据变更后及时持久化能不看答案独立写出这个项目说明 Java 基础已经过关。六、核心知识图谱文字版Java 基础 ├── 语法地基变量/运算符/流程控制/数组/方法 ├── 面向对象类与对象 → 封装 → 继承 → 多态 → 抽象类与接口 ├── 常用 APIString / 异常 / 集合(List、Set、Map) / 泛型 ├── 进阶基础IO 流 / 多线程 └── 综合实战学生信息管理系统贯穿始终的一条主线“基本类型存值、引用类型存地址”它解释了 equals vs 、深浅拷贝、集合去重hashCodeequals、Map 查找原理、值传递等一大片问题。七、高频易错点清单比较字符串内容 → 错用equals数组越界、new对象数组后忘了 new 元素 → 空指针重载与重写混淆重载换参数、重写换实现switch 忘写 break旧写法在增强 for 里删除集合元素 → 用 Iterator.remove()自定义类进 HashSet/HashMap 不重写 hashCodeequalsfinally 里 return 吞掉异常/返回值字符流不 close 数据丢失读文件乱码编码不一致count多线程不安全nextInt 后直接 nextLine 读到空串八、下一步Java 高级用法系列基础篇到此收官。接下来是《Java 高级用法》系列继续深入原理和为什么深入 String常量池、intern 与不可变集合框架深度HashMap 源码与并发集合IO 流深入与序列化网络编程Socket 与 HTTP多线程进阶线程池与锁JVM内存与垃圾回收、性能调优JDK 新特性8/11/17 的 Lambda、Stream、var、语法糖反射、注解、泛型深入、设计模式、并发实战……基础打牢进阶不慌。下一站见下一篇Java 高级用法系列 第1章 深入 String常量池、intern 与不可变
延伸阅读

更多相关文章

2026/9/19 13:29:53

全开源跨境商城系统:多语言与资金流深度重构

简介:这是一套面向跨境电商开发者与独立站创业者的全开源多语言跨境商城系统源码,解决多语种市场拓展、多商户联盟运营及快速部署等核心需求。资源包共2000个文件,涵盖691个PHP后端逻辑文件、450个JS交互脚本、268个PNG图标资源、192个CSS样式…

2026/9/19 13:29:53

遗传算法+神经网络训练智能贪吃蛇:从原理到代码实战

简介:在机器学习领域,神经网络与遗传算法都是经典技术,它们不依赖梯度信息即可优化模型参数。传统神经网络训练多依赖反向传播,而遗传算法通过模拟“优胜劣汰”的进化规律,能有效解决奖励稀疏、延迟反馈的决策问题。本…

2026/9/19 13:29:57

【Openstack部署-2】

Networking 服务之前的修改的配置不要删除配置私有网络控制节点[rootcontroller ~]# vim /etc/neutron/neutron.conf[database] ... connection mysqlpymysql://neutron:NEUTRON_DBPASScontroller/neutron使用你设置的数据库密码替换 NEUTRON_DBPASS[DEFAULT] ... core_plugin…

2026/9/19 15:49:22

AssetRipper:5 分钟搞定 Unity 游戏资源提取的免费开源工具

AssetRipper:5 分钟搞定 Unity 游戏资源提取的免费开源工具 【免费下载链接】AssetRipper GUI application to analyze game files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper AssetRipper 是一款免费的 Unity 游戏资源提取工具。它解析…

2026/9/19 15:49:22

亚硫酸氢盐转化后甲基化PCR引物设计:MSP/BSP关键参数解析

简介:DNA甲基化是表观遗传调控的关键机制,与肿瘤发生密切相关。这份《DNA甲基化PCR引物的设计》PDF系统介绍了甲基化特异性PCR(MS-PCR)引物的设计原理与流程,面向从事表观遗传学、肿瘤分子生物学研究的科研人员及学生&…

2026/9/19 15:49:22

用python-pptx实现培训课件的工程化生成与版本管理

简介:企业文化及跨文化管理PPT课件,围绕企业文化内涵、特征、构成要素、功能层次展开,并对比中日美企业文化差异,引入松下、三洋等跨文化管理经典案例,适合财务管理类课堂授课、企业内训或自我学习使用。内容以“企业人…

2026/9/19 15:49:22

SSM框架在物流配送管理系统中的核心设计与实践

简介:基于SSM框架的物流配送管理系统设计与实现.docx是一份面向高校毕业设计、课程设计及企业物流信息化项目开发者的完整设计文档。内容以中国联通秦皇岛分公司与上海德邦物流的合作优化为背景,从经济、技术可行性分析入手,完成用户需求梳理…

2026/9/19 15:49:22

Windows 24H2下eNSP AR_40错误代码40修复指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 15:44:21

NTFS误删与格式化后数据恢复实战:从MFT原理到EasyRecovery操作

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 14:13:01

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/19 0:03:10

验证 OpenSpec 兼容性,Cursor 的 Token 从 TaoToken 出

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 0:03:10

书桌角落的 Mac mini,OpenClaw 通过 TaoToken 跑任务。

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 0:03:10

oh-my-hermes:打造跨工具的命令编排与插件化工作流

1. 项目概述与设计初衷1.1 它到底是什么先说结论:oh-my-hermes 是一个面向开发者日常终端操作的效率工具套件,核心定位是“把分散在各类命令行工具里的高频操作,统一收拢成一套插件化、可编排的工作流”。项目灵感来源很明显——oh-my-zsh 重…

2026/9/18 14:13:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/18 14:13:02

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/18 14:13:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码