# 从零开始学Java **Repository Path**: sunyiyi/LearnJava ## Basic Information - **Project Name**: 从零开始学Java - **Description**: 从零开始学Java系列 稀土掘金专栏地址:https://juejin.cn/column/7175082165548351546 CSDN专栏地址:https://yiyige.blog.csdn.net/article/details/129377219?spm=1001.2014.3001.5502 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 4 - **Created**: 2023-04-27 - **Last Updated**: 2025-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 从零开始学Java > **作者**:孙玉昌,昵称【**一一哥**】,另外【**壹壹哥**】也是我哦
> 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 ## 配套开源项目资料 **Github地址:** https://github.com/SunLtd/LearnJava
**Gitee地址:** https://gitee.com/sunyiyi/LearnJava --- 有非常多的小伙伴想学习Java,而Java的学习资料特别多,比如B站上就有大量的免费视频,尤其是基础阶段的Java视频更多。此外,CSDN、掘金等博客网站上也有很多高质量的Java文章教程供我们学习。但这些网站上的教程,很多都没有配套的案例和对应的学习进度规划。 所以**壹哥**就想在Github和Gitee中创建一个开源项目,通过这个项目带大家从零开始学Java。在这个项目中,我会按天给大家规划学习进度,并把学习资料(代码、文档等)放到对应的日期文件夹中,这样你只需要按照我的这个日期往下看,就可以有计划地学会Java了。 总之,我的目标是和大家一起,共同打造一个优质的Java交流社区,为想学习Java的初学者扫平入门过程中的重重障碍。同时也想为新入行的开发者提供一个问道的途径,帮助大家迅速成为优秀的Java程序员。另外我也希望有经验的程序员,可以利用这个平台把自己的工作经验无偿地分享或有偿提供出来,让大家都能够得到职业技能及综合素质的全面提升。 ## Java简介 Java从1995年正式发布以来,面世将近30年来,与各种语言PK几乎都是稳居前三,最近15年间更是霸榜各编程语言排行榜龙头。经过这么多年的实践考验,具有行业内人尽皆知的优势:最成熟、企业开发首选、开发者最多、世界排名第一、始终蝉联TIOBE编程语言排行榜前三列。 而且Java应用遍布全球各个行业、各个领域,你所知道的90%的软件都是Java开发的,比如: > 1. 著名的12306 > 2. 电子商务网站——阿里、淘宝、天猫 、京东..... > 3. 绝大多数电信行业的各种系统,中国移动、中国联通、中国电信...... > 4. 各个银行系统、金融系统、交易系统..... > 5. 互联网项目 > 6. 证券行业系统 > 7. 游戏后端服务器应用 > 8. ....... Java广泛应用在金融、保险、电商、物流、通讯、交通、互联网等各个行业中!可以说,不管是哪个行业,哪个公司,只要他们的项目有后端,90%以上都是Java!所以,这么牛逼的编程语言,是不是足以坚定你学习下去的信心了? 更重要的是,Java并不是抱残守缺一成不变,现在Oracle公司对Java每隔半年就进行一次大的版本更新。即使是这么优秀的编程语言都还在不断地进行自我更新,你还有什么理由不更新自己的知识储备呢?放眼当今各种编程语言,唯有Java,可以同时满足如下条件: > **拥有雄厚的历史沉淀,海量的项目检验,不断的更新迭代,完整的生态支撑,最广泛的就业机会。** 我们学习编程技术,其实更多的还是从就业的角度来考虑!对小白来说,我们不要去追最新最火的技术。那些技术能活几年都不一定,3年后让你失业难受不难受?比如一度非常火爆的iOS,你现在去招聘网站上搜一下iOS的招聘需求,看看还有多少。我们也不要玩一成不变的老古董,比如C语言,虽然很多地方都在用,但薪资待遇对小白来说并不友好。 但是Java既有深厚的技术沉淀,又在不断地更新以适应市场需求,并且拥有完整的生态链条,你完全不用担心学习Java后会失业。所以从就业的角度来看,学习Java作为自己的第一编程语言无疑是最好的选择!而且熟悉Java之后,就好比先学会了易筋经、九阴九阳等高深内功,再去学习其他编程语言就很轻松了。 所以作为一个过来人,**壹哥**强烈建议新手小白选择Java来作为自己的编程“母语”! ## Day01~43 - Java语言基础 ### Day01 - [初识Java](https://github.com/SunLtd/LearnJava/blob/main/Day01-Java%E6%A6%82%E8%BF%B0%E4%B8%8E%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/01%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java01%E4%B9%8B%E4%BD%A0%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E5%AD%A6Java%EF%BC%9F.pdf) - IT行业分析 / 什么是编程 / 为什么选择学Java - Java简介 - Java起源 / Java发展史 / Java版本选择 - Java运行机制 - 编程语言分类 / Java运行机制 / 跨平台原理 - 搭建编程环境 - 下载、安装JDK / 配置环境变量 - dos命令行 - dos命令 / 常用命令 ### Day02 - [HelloWorld](https://github.com/SunLtd/LearnJava/blob/main/Day02-Helloworld%E3%80%81%E6%A0%87%E8%AF%86%E7%AC%A6%E3%80%81%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83/06%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java06%E4%B9%8B%E7%BC%96%E5%86%99%E7%AC%AC%E4%B8%80%E4%B8%AAJava%E7%A8%8B%E5%BA%8FHelloWorld.pdf) - HelloWorld - 编写程序 / 编译程序 / 执行程序 / 常见错误处理 - Java标识符 - 命名规则 / 命名规范 - 关键字和保留字 - 关键字 / 保留字 - 编码规范 - 代码缩进 - Java注释 - 单行注释 / 多行注释 / 文档注释 ### Day03 - [开发工具安装配置](https://github.com/SunLtd/LearnJava/blob/main/Day03-%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%E7%9A%84%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/08%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java08%E4%B9%8B%E8%AE%B0%E4%BA%8B%E6%9C%AC%E4%B9%9F%E8%83%BD%E5%86%99Java.pdf) - 记事本 - notepad的安装配置 / sublime3 - eclipse - 下载安装 / 常用配置 / 创建项目 - intellij idea - 下载安装 / 常用配置 / 常用快捷键 / 创建项目 ### Day04 - [变量与数据类型](https://github.com/SunLtd/LearnJava/blob/main/Day04-%E5%8F%98%E9%87%8F%E3%80%81%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/11%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java11%E4%B9%8BJava%E9%87%8C%E7%9A%84%E5%8F%98%E9%87%8F%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.pdf) - Java变量 - 概念 / 分类 / 定义语法 / 实现步骤 / 重新赋值 / 变量间赋值 / 原理分析 - 数据类型 - 分类 / 存储单位 / 基本类型 / void / 包装类 / 转义字符 / 引用类型 - 类型转换 - 基本原则 / 自动类型转换 / 强制类型转换 / 隐含强制类型转换 / 其他类型转换 ### Day05 - [运算符、进制转换、输入输出](https://github.com/SunLtd/LearnJava/blob/main/Day05-%E8%BF%90%E7%AE%97%E7%AC%A6%E3%80%81%E8%BF%9B%E5%88%B6%E8%BD%AC%E6%8D%A2%E3%80%81%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA/14%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java14%E4%B9%8BJava%E4%B8%AD%E9%83%BD%E6%9C%89%E5%93%AA%E4%BA%9B%E8%BF%90%E7%AE%97%E7%AC%A6%EF%BC%9F.pdf) - 运算符:分类 / 算数运算符 / 赋值运算符 / 关系运算符 / 逻辑运算符 / 位运算符 / 条件运算符 / 类型比较运算符 - 进制转换:进制简介 / 二进制 / 八进制 / 十六进制 / 负数的进制转换 / 小数的进制转换 - 输入和输出:输出语句 / 输入语句 ### Day06 - [流程控制、条件分支、if、switch](https://github.com/SunLtd/LearnJava/tree/main/Day06-%E5%88%86%E6%94%AF%E7%BB%93%E6%9E%84if%E4%B8%8Eswitch) - 流畅控制:分类 / 顺序结构 / 分支结构 / 循环结构 - 条件分支:if单分支 / 多分支 / if...else / if嵌套 - switch语句:switch规则 / case穿透 / switch新特性:->符号与返回结果 ### Day07 - [局部变量、循环结构](https://github.com/SunLtd/LearnJava/blob/main/Day07-%E5%B1%80%E9%83%A8%E5%8F%98%E9%87%8F%E4%B8%8E%E5%BE%AA%E7%8E%AF%E7%BB%93%E6%9E%84/19%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java19%E4%B9%8B%E5%B1%80%E9%83%A8%E5%8F%98%E9%87%8F%E5%92%8C%E6%88%90%E5%91%98%E5%8F%98%E9%87%8F%E6%98%AF%E6%80%8E%E4%B9%88%E5%9B%9E%E4%BA%8B%EF%BC%9F.pdf) - 变量细谈:局部变量 / 成员变量 / 权限修饰符 - for循环:基本语法 / 案例 / 循环嵌套 / 变形写法 - while循环:基本特性 - do-while循环:基本特性 - 几个关键字:break / continue / return / 区别 - foreach循环:概念 / 基本特性 / 缺陷 ### Day08 - [一维数组、二维数组](https://github.com/SunLtd/LearnJava/blob/main/Day08-%E4%B8%80%E7%BB%B4%E6%95%B0%E7%BB%84%E4%B8%8E%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/24%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java24%E4%B9%8B%E4%B8%80%E7%BB%B4%E6%95%B0%E7%BB%84%E7%9A%84%E4%BD%BF%E7%94%A8.pdf) - 一维数组:概念 / 特性 / 动态初始化 / 静态初始化 / 遍历与取值 - 数组扩容:简介 / 扩容与缩容 / 代码实现 - 数组拷贝:实现方式 / 代码实现 - 数组排序:实现方式 / 冒泡排序 / 优化方案 / 选择排序 / Arrays.sort - 二分查找法:代码实现 - 二维与多维数组:概念 / 初始化方式 / 内存分析 ### Day09 - [面向对象](https://github.com/SunLtd/LearnJava/blob/main/Day09-%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/28%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java28%E4%B9%8B%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E5%92%8C%E9%9D%A2%E5%90%91%E8%BF%87%E7%A8%8B%E7%9A%84%E5%8C%BA%E5%88%AB.pdf) - 面向过程:概念 / 特点 - 面向对象:概念 / 特点 - 类:简介 / 类的组成 / 创建步骤 / 关键字 / 命名规则与规范 / 类的属性 - 对象:简介 / 创建方式 / 显式创建 / 隐式创建 / 对象使用 / 内存分析 ### Day10 - [方法的定义](https://github.com/SunLtd/LearnJava/blob/main/Day10-%E6%96%B9%E6%B3%95%E5%AE%9A%E4%B9%89%E4%B8%8E%E9%80%92%E5%BD%92/31%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java31%E4%B9%8B%E6%96%B9%E6%B3%95%E7%9A%84%E5%AE%9A%E4%B9%89.pdf) - 方法定义:简介 / 基本语法 / 命名规则 / 方法调用 / 方法返回值 - 方法参数:形参 / 实参 / 可变参数 / 命令行参数 - 递归:简介 / 递归的实现 ### Day11 - [构造方法与析构方法](https://github.com/SunLtd/LearnJava/blob/main/Day11-%E6%9E%84%E9%80%A0%E4%B8%8E%E6%9E%90%E6%9E%84%E6%96%B9%E6%B3%95/34%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java34%E4%B9%8B%E6%9E%84%E9%80%A0%E6%96%B9%E6%B3%95%E5%92%8B%E5%9B%9E%E4%BA%8B%EF%BC%9F.pdf) - 构造方法:简介 / 特性 / 基本使用 / 调用 / 构造方法私有化 - 析构方法:特性 / 基本使用 ### Day12 - [方法重载、this关键字、封装](https://github.com/SunLtd/LearnJava/blob/main/Day12-%E6%96%B9%E6%B3%95%E9%87%8D%E8%BD%BD%E3%80%81this%E3%80%81%E5%B0%81%E8%A3%85/36%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java36%E4%B9%8B%E6%96%B9%E6%B3%95%E7%9A%84%E9%87%8D%E8%BD%BD%E6%98%AF%E5%92%8B%E5%9B%9E%E4%BA%8B.pdf) - 方法重载:简介 / 普通方法重载 / 构造方法重载 - this关键字:作用 / 基本使用 - 封装:概念 / 代码实现 / 作用 ### Day13 - [继承与方法重新](https://github.com/SunLtd/LearnJava/blob/main/Day13-%E7%BB%A7%E6%89%BF%E3%80%81%E6%96%B9%E6%B3%95%E9%87%8D%E5%86%99/39%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java39%E4%B9%8B%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E4%B8%89%E5%A4%A7%E7%89%B9%E5%BE%81%E4%B9%8B%E7%BB%A7%E6%89%BF.pdf) - 类的继承:简介 / 特性 / 代码实现 / 无法继承的情况 / sealed+permits阻止继承 - 方法重写:作用 / 代码实现 / 变量隐藏 / 方法隐藏 / 重载与重写的区别 ### Day14 - [类型转换、instanceof、多态](https://github.com/SunLtd/LearnJava/blob/main/Day14-%E8%BD%AC%E5%9E%8B%E3%80%81instanceof%E3%80%81%E5%A4%9A%E6%80%81/41%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java41%E4%B9%8B%E5%90%91%E4%B8%8A%E8%BD%AC%E5%9E%8B%E4%B8%8E%E5%90%91%E4%B8%8B%E8%BD%AC%E5%9E%8B.pdf) - 类型转换:向上转型 / 向下转型 - instanceof:作用 / 代码实现 - 多态:特性 / 作用 / 分类 / 代码实现 / 扩展 ### Day15 - [abstract修饰符](https://github.com/SunLtd/LearnJava/blob/main/Day15-abstract/44%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java44%E4%B9%8Babstract%E4%BF%AE%E9%A5%B0%E7%AC%A6%E4%B8%8E%E6%8A%BD%E8%B1%A1%E7%B1%BB%E3%80%81%E6%8A%BD%E8%B1%A1%E6%96%B9%E6%B3%95.pdf) - abstract修饰符:作用 / 注意事项 - 抽象类:特性 / 代码案例 - 抽象方法:特性 / 代码案例 ### Day16 - [static修饰符](https://github.com/SunLtd/LearnJava/blob/main/Day16-static/45%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java45%E4%B9%8Bstatic%E4%BF%AE%E9%A5%B0%E7%AC%A6%E3%80%81%E9%9D%99%E6%80%81%E5%8F%98%E9%87%8F%E5%92%8C%E9%9D%99%E6%80%81%E6%96%B9%E6%B3%95.pdf) - static修饰符:作用 / 注意事项 - 静态属性与静态常量:概念 / 特性 / 案例 - 静态方法:概念 / 基本语法 / 代码案例 - 静态代码块:特性 / 代码案例 - 静态内部类:特性 / 代码案例 - 静态导入:部分导入 / 全部导入 ### Day17 - [final修饰符](https://github.com/SunLtd/LearnJava/blob/main/Day17-final/47%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java47%E4%B9%8Bfinal%E4%BF%AE%E9%A5%B0%E7%AC%A6%E3%80%81%E5%B8%B8%E9%87%8F%E3%80%81%E5%B8%B8%E9%87%8F%E6%96%B9%E6%B3%95%E4%B8%8E%E5%B8%B8%E9%87%8F%E7%B1%BB.pdf) - final修饰符:简介 / 特性 - 常量:概念 / 特性 / 代码案例 - 常量方法:概念 / 基本语法 / 代码案例 - 常量类:概念 / 语法 / 代码案例 ### Day18 - [接口与内部类](https://github.com/SunLtd/LearnJava/blob/main/Day18-interface%E6%8E%A5%E5%8F%A3%E4%B8%8E%E5%86%85%E9%83%A8%E7%B1%BB/48%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java48%E4%B9%8Binterface%E6%8E%A5%E5%8F%A3%E5%8F%88%E6%98%AF%E5%92%8B%E5%9B%9E%E4%BA%8B%EF%BC%9F.pdf) - 接口:简介 / 特性 / 接口与类的区别 / 接口定义 / 标记接口 / 接口新特性 - 内部类:概念 / 特性 / 成员内部类 / 局部内部类 / 匿名内部类 / 静态内部类 ### Day19 - [Object与包装类](https://github.com/SunLtd/LearnJava/blob/main/Day19-Object%E4%B8%8E%E5%8C%85%E8%A3%85%E7%B1%BB/50%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6Java50%E4%B9%8BObject%E7%B1%BB%E6%98%AF%E6%80%8E%E4%B9%88%E5%9B%9E%E4%BA%8B%EF%BC%9F.pdf) - Object类:简介 / 常用方法 / clone() / hashCode / equals / toString()等 - 包装类:概念 / 分类 / 常用包装类 - 装箱与拆箱:概念 / 实现案例 - Integer原理:int与Integer的区别 / Integer源码解析 / Integer特性 ### Day20 - [字符串、编码格式与正则表达式]() - String字符串:简介 / 定义方式 / 常用方法:比较、判空、拼接、转换、格式化等 - 字符串编码:简介 / 常用编码:ASCII、GB2312、Big5、Unicode、UTF-8、GBK / 编码设置 - 正则表达式:简介 / 基本语法 / 常用API / 验证电话号码 / 验证身份证号 ### Day21 - [字符串原理、StringBuilder与StringBuffer]() - String原理:final特点 / String源码解读 / String不可变性 / 如何改变String内容 - 字符串常量池:概念 / 代码案例 / 字符串内存分配 / intern()方法 - StringBuilder:简介 / 基本特性 / 基本用法 / - StringBuffer:简介 / 基本特性 / 基本用法 - 扩容机制:继承关系 / AbstractStringBuilder类 / 容量设置 / 扩容过程 / ### Day22 - [常用数字类]() - Number类:简介 / 数字格式化 - Math数学类:简介 / 静态常量 / 最大值、最小值、平均值 / 求整运算 / 三角函数 / 指数运算 / 生成随机数 - BigInteger类:简介 / 常用方法 - BigDecimal类:简介 / 常用方法 / 数值比较 ### Day23 - [时间类及其新特性]() - 时间核心概念:本地时间 / 时区 / 本地化 / 夏令时 / 时间起点 / 时间戳 - Date类:简介 / 构造方法 / 常用API / 基本使用 - Calendar日历类:简介 / 静态常量 / 常用方法 / 获取当前时间 - GregorianCalendar类:简介 / 基本用法 - 时间格式化:时间模式 / printf()格式化 / DateFormat类 / SimpleDateFormat类 - 日期时间新特性:LocalDateTime / ZonedDateTime / DateTimeFormatter / Instant / 新旧时间API转换 ### Day24 - [Java常用类]() - System类:简介 / 静态变量 / 静态方法 / 时间起点 / 时间戳 - Random类:简介 / 常用API / 基本用法 - SecureRandom类:简介 / 基本使用 ### Day25 - [List与Set集合]() - 集合:简介 / 基本特性 / 核心接口 / 常用实现类 / Collection接口 / Iterator迭代器 - List集合:简介 / 类关系 / 创建方式 / 遍历方式 / ArrayList集合 / LinkedList集合 - Set集合:简介 / 基本特性 / 常用方法 / HashSet集合 / TreeSet集合 ### Day26 - [Map与Properties集合]() - Map集合:简介 / 实现方式 / 常用方法 / 常用实现类 / HashMap集合 / Hashtable集合 / ConcurrentHashMap集合 - Collection:简介 / 核心方法 - Collections:简介 / 常用方法:排序、查找、替换、同步 - Properties类:简介 / 配置文件 / 常用方法 / 读取步骤 / 读写Properties配置文件 / 读写XML配置文件 ### Day27 - [泛型]() - 泛型:简介 / 特性 / 使用场景 - 泛型集合:简介 / 基本语法 / 代码案例 - 泛型接口:简介 / 代码案例 - 泛型类:简介 / 代码案例 - 继承泛型类与实现泛型接口:简介 / 代码案例 - 泛型方法:简介 / 代码实现 - 通配符:简介 / 通配符形式 / 未限定通配符?/ PECS原则 / 上限通配符 / 下限通配符 - 泛型擦除:简介 / 泛型擦除的限制 ### Day28 - [排序算法、查找算法]() - 排序算法:简介 / 冒泡排序 / 选择排序 - 插入排序:简介 / 直接插入 / 快速排序 / 希尔排序 - 查找算法:简介 / 二分查找法 / 线性查找法 / 插值查找法 / 斐波那契查找法 ### Day29 - [线性结构、树结构]() - 线性结构:简介 / 链表概念 / 链表分类 / 存储原理 / 链表操作 - 双向链表:概念 / 查找元素 / 更新元素 / 插入元素 / 删除元素 / 其他操作 - 栈、队列、串:概念 / 特点 / 代码实现 - 树:概念 / 术语 / 分类 - 二叉树:概念 / 性质 / 二叉树的存储 / 遍历操作 / 编码实现 / 查找实现 ### Day30 - [异常处理机制01]() - 异常处理机制:简介 / 异常类型 / 捕获异常 / 处理异常 / 自定义异常 / 最佳实践 / 常见问题 - 异常的捕获处理:概述 / try-catch / 多重catch结构 / try-catch-finally - 异常的抛出声明:概述 / throw抛出异常 / throws声明异常 ### Day31 - [异常处理机制02]() - 异常处理新特性:简介 / 多异常捕获 / 自动资源管理 - 自定义异常:简介 / 基本语法 / 最佳实践 - 空指针异常:简介 / 产生原因 / 典型情况 / 解决办法 ### Day32 - [IO流API及文件操作]() - IO流概念:概念 / 作用 / 分类 / 输入流与输出流 / 字节流与字符流 / 节点流与处理流 - IO流API:API分类 / 核心API介绍 - File文件类:概述 / 方法与属性 / 文件的创建 / 其他操作 / Path路径操作 ### Day33 - [字节流与字符流、编码问题]() - InputStream字节输入流:简介 / 常用子类 / 常用方法 / 代码实现 - OutputStream字节输出流:简介 / 常用子类 / 常用方法 / 代码实现 - 字节缓冲流:简介 / 常用子类 / 基本用法 - Reader字符输入流:简介 / 常用子类 / 常用方法 / 代码实现 - Writer字符输出流:简介 / 常用子类 / 常用方法 / 代码实现 - 字符缓冲流:简介 / 常用子类 / 基本用法 - 编码问题:简介 / 常用编码 / 中文乱码问题 / 转换流设置编码 ### Day34 - [BIO、NIO、AIO]() - BIO阻塞式IO:简介 / 缺陷 / 使用场景 / 基本概念 / 代码案例 - NIO非阻塞式IO:简介 / 基本概念 / 开发步骤 / 读取数据 / 写入数据 - AIO移步非阻塞IO:简介 / 工作原理 / 异步通道 / 工作流程 / 代码实现 ### Day35 - [线程及创建方式]() - 线程:概念 / 多线程概念 / 进程 / - 创建方式:创建方式 / 继承Thread类 / 实现Runnable接口 / Lambda表达式 / 实现Callable接口 / 使用Executor框架 - 核心API:核心API / 常用方法 ### Day36 - [线程池及线程状态]() - 线程池:概念 / 核心API / 实现案例 - 线程状态:简介 / 状态切换 / 代码实现 / 阻塞状态 / 等待状态 ### Day37 - [线程安全、线程通信、线程同步]() - 多线程:概念 / 使用场景 / 创建方式 - 线程安全:存在的问题 / 解决办法 - 线程通信:概念 / 通信方式 / 等待与唤醒 / 代码实现 - 线程同步:概念 / 同步方式 / - 互斥锁: 概念 / 实现方式 - synchronized:简介 / 基本语法 / 代码实现 / 优化技巧 / 实现原理 ### Day38 - [volalile及线程死锁解决]() - 线程安全:概念 / 实现方式 - volalile:简介 / 基本语法 / 代码实现 / 可见性 / 禁止指令重排 / 屏障指令 - 线程死锁:概念 / 代码案例 / 产生条件 / 解决办法 / 案例优化 ### Day39 - [网络编程]() - 网络编程:简介 / 技术分类 / Socket编程 / URL编程 / HTTP编程 / RMI编程 / JDBC编程 - Socket编程:简介 / 通信流程 / 核心API / 单向通信 / 双向通信 / 注意事项 - URL与HTTP编程:简介 / URL类 / URLConnection类 / HttpURLConnection类 / HttpClient类 ### Day40 - [枚举与注解]() - 枚举:概念 / 特点 / 使用场景 / 基本使用 / Enum类 / 枚举扩展类 - 注解:概念 / 使用场景 / 注解类型 / 基本使用 / 自定义注解 ### Day41 - [反射]() - 反射:概念 / 使用场景 / 注意事项 / 获取字节码 / 常用操作 - 高级用法:反射操作注解 / ORM框架简介 / 手写ORM框架 ### Day42 - [XML与JSON解析]() - XML文档:XML简介 / 使用场景 / 文档构成 / 文档规范 - XML解析:概念 / 解析方式 / DOM解析 / PULL解析 - JSON简介:概念 / 优缺点 / 使用场景 / JSON语法 - JSON解析:概述 / 解析原理 / Jackson解析 / 序列化 / 反序列化 ### Day43 - [单元测试]() - 测试:简介 / 分类 / 测试工具 - 单元测试:概念 / 常用框架 - JUnit框架:简介 / 特点 / 使用场景 / 常用注解 / 测试用例 / 异常处理 / 处理条件