Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

SunLtd/LearnJava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

19 Commits

Repository files navigation

从零开始学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

  • IT行业分析 / 什么是编程 / 为什么选择学Java
  • Java简介 - Java起源 / Java发展史 / Java版本选择
  • Java运行机制 - 编程语言分类 / Java运行机制 / 跨平台原理
  • 搭建编程环境 - 下载、安装JDK / 配置环境变量
  • dos命令行 - dos命令 / 常用命令

Day02 - HelloWorld

  • HelloWorld - 编写程序 / 编译程序 / 执行程序 / 常见错误处理
  • Java标识符 - 命名规则 / 命名规范
  • 关键字和保留字 - 关键字 / 保留字
  • 编码规范 - 代码缩进
  • Java注释 - 单行注释 / 多行注释 / 文档注释
  • 记事本 - notepad的安装配置 / sublime3
  • eclipse - 下载安装 / 常用配置 / 创建项目
  • intellij idea - 下载安装 / 常用配置 / 常用快捷键 / 创建项目
  • Java变量 - 概念 / 分类 / 定义语法 / 实现步骤 / 重新赋值 / 变量间赋值 / 原理分析
  • 数据类型 - 分类 / 存储单位 / 基本类型 / void / 包装类 / 转义字符 / 引用类型
  • 类型转换 - 基本原则 / 自动类型转换 / 强制类型转换 / 隐含强制类型转换 / 其他类型转换
  • 运算符:分类 / 算数运算符 / 赋值运算符 / 关系运算符 / 逻辑运算符 / 位运算符 / 条件运算符 / 类型比较运算符
  • 进制转换:进制简介 / 二进制 / 八进制 / 十六进制 / 负数的进制转换 / 小数的进制转换
  • 输入和输出:输出语句 / 输入语句
  • 流畅控制:分类 / 顺序结构 / 分支结构 / 循环结构
  • 条件分支:if单分支 / 多分支 / if...else / if嵌套
  • switch语句:switch规则 / case穿透 / switch新特性:->符号与返回结果
  • 变量细谈:局部变量 / 成员变量 / 权限修饰符
  • for循环:基本语法 / 案例 / 循环嵌套 / 变形写法
  • while循环:基本特性
  • do-while循环:基本特性
  • 几个关键字:break / continue / return / 区别
  • foreach循环:概念 / 基本特性 / 缺陷
  • 一维数组:概念 / 特性 / 动态初始化 / 静态初始化 / 遍历与取值
  • 数组扩容:简介 / 扩容与缩容 / 代码实现
  • 数组拷贝:实现方式 / 代码实现
  • 数组排序:实现方式 / 冒泡排序 / 优化方案 / 选择排序 / Arrays.sort
  • 二分查找法:代码实现
  • 二维与多维数组:概念 / 初始化方式 / 内存分析

Day09 - 面向对象

  • 面向过程:概念 / 特点
  • 面向对象:概念 / 特点
  • 类:简介 / 类的组成 / 创建步骤 / 关键字 / 命名规则与规范 / 类的属性
  • 对象:简介 / 创建方式 / 显式创建 / 隐式创建 / 对象使用 / 内存分析
  • 方法定义:简介 / 基本语法 / 命名规则 / 方法调用 / 方法返回值
  • 方法参数:形参 / 实参 / 可变参数 / 命令行参数
  • 递归:简介 / 递归的实现
  • 构造方法:简介 / 特性 / 基本使用 / 调用 / 构造方法私有化
  • 析构方法:特性 / 基本使用
  • 方法重载:简介 / 普通方法重载 / 构造方法重载
  • this关键字:作用 / 基本使用
  • 封装:概念 / 代码实现 / 作用
  • 类的继承:简介 / 特性 / 代码实现 / 无法继承的情况 / sealed+permits阻止继承
  • 方法重写:作用 / 代码实现 / 变量隐藏 / 方法隐藏 / 重载与重写的区别
  • 类型转换:向上转型 / 向下转型
  • instanceof:作用 / 代码实现
  • 多态:特性 / 作用 / 分类 / 代码实现 / 扩展
  • abstract修饰符:作用 / 注意事项
  • 抽象类:特性 / 代码案例
  • 抽象方法:特性 / 代码案例
  • static修饰符:作用 / 注意事项
  • 静态属性与静态常量:概念 / 特性 / 案例
  • 静态方法:概念 / 基本语法 / 代码案例
  • 静态代码块:特性 / 代码案例
  • 静态内部类:特性 / 代码案例
  • 静态导入:部分导入 / 全部导入
  • final修饰符:简介 / 特性
  • 常量:概念 / 特性 / 代码案例
  • 常量方法:概念 / 基本语法 / 代码案例
  • 常量类:概念 / 语法 / 代码案例
  • 接口:简介 / 特性 / 接口与类的区别 / 接口定义 / 标记接口 / 接口新特性
  • 内部类:概念 / 特性 / 成员内部类 / 局部内部类 / 匿名内部类 / 静态内部类
  • Object类:简介 / 常用方法 / clone() / hashCode / equals / toString()等
  • 包装类:概念 / 分类 / 常用包装类
  • 装箱与拆箱:概念 / 实现案例
  • Integer原理:int与Integer的区别 / Integer源码解析 / Integer特性
  • String字符串:简介 / 定义方式 / 常用方法:比较、判空、拼接、转换、格式化等
  • 字符串编码:简介 / 常用编码:ASCII、GB2312、Big5、Unicode、UTF-8、GBK / 编码设置
  • 正则表达式:简介 / 基本语法 / 常用API / 验证电话号码 / 验证身份证号
  • String原理:final特点 / String源码解读 / String不可变性 / 如何改变String内容
  • 字符串常量池:概念 / 代码案例 / 字符串内存分配 / intern()方法
  • StringBuilder:简介 / 基本特性 / 基本用法 /
  • StringBuffer:简介 / 基本特性 / 基本用法
  • 扩容机制:继承关系 / AbstractStringBuilder类 / 容量设置 / 扩容过程 /
  • Number类:简介 / 数字格式化
  • Math数学类:简介 / 静态常量 / 最大值、最小值、平均值 / 求整运算 / 三角函数 / 指数运算 / 生成随机数
  • BigInteger类:简介 / 常用方法
  • BigDecimal类:简介 / 常用方法 / 数值比较
  • 时间核心概念:本地时间 / 时区 / 本地化 / 夏令时 / 时间起点 / 时间戳
  • Date类:简介 / 构造方法 / 常用API / 基本使用
  • Calendar日历类:简介 / 静态常量 / 常用方法 / 获取当前时间
  • GregorianCalendar类:简介 / 基本用法
  • 时间格式化:时间模式 / printf()格式化 / DateFormat类 / SimpleDateFormat类
  • 日期时间新特性:LocalDateTime / ZonedDateTime / DateTimeFormatter / Instant / 新旧时间API转换

Day24 - Java常用类

  • System类:简介 / 静态变量 / 静态方法 / 时间起点 / 时间戳
  • Random类:简介 / 常用API / 基本用法
  • SecureRandom类:简介 / 基本使用
  • 集合:简介 / 基本特性 / 核心接口 / 常用实现类 / Collection接口 / Iterator迭代器
  • List集合:简介 / 类关系 / 创建方式 / 遍历方式 / ArrayList集合 / LinkedList集合
  • Set集合:简介 / 基本特性 / 常用方法 / HashSet集合 / TreeSet集合
  • Map集合:简介 / 实现方式 / 常用方法 / 常用实现类 / HashMap集合 / Hashtable集合 / ConcurrentHashMap集合
  • Collection:简介 / 核心方法
  • Collections:简介 / 常用方法:排序、查找、替换、同步
  • Properties类:简介 / 配置文件 / 常用方法 / 读取步骤 / 读写Properties配置文件 / 读写XML配置文件

Day27 - 泛型

  • 泛型:简介 / 特性 / 使用场景
  • 泛型集合:简介 / 基本语法 / 代码案例
  • 泛型接口:简介 / 代码案例
  • 泛型类:简介 / 代码案例
  • 继承泛型类与实现泛型接口:简介 / 代码案例
  • 泛型方法:简介 / 代码实现
  • 通配符:简介 / 通配符形式 / 未限定通配符?/ PECS原则 / 上限通配符 / 下限通配符
  • 泛型擦除:简介 / 泛型擦除的限制
  • 排序算法:简介 / 冒泡排序 / 选择排序
  • 插入排序:简介 / 直接插入 / 快速排序 / 希尔排序
  • 查找算法:简介 / 二分查找法 / 线性查找法 / 插值查找法 / 斐波那契查找法
  • 线性结构:简介 / 链表概念 / 链表分类 / 存储原理 / 链表操作
  • 双向链表:概念 / 查找元素 / 更新元素 / 插入元素 / 删除元素 / 其他操作
  • 栈、队列、串:概念 / 特点 / 代码实现
  • 树:概念 / 术语 / 分类
  • 二叉树:概念 / 性质 / 二叉树的存储 / 遍历操作 / 编码实现 / 查找实现
  • 异常处理机制:简介 / 异常类型 / 捕获异常 / 处理异常 / 自定义异常 / 最佳实践 / 常见问题
  • 异常的捕获处理:概述 / try-catch / 多重catch结构 / try-catch-finally
  • 异常的抛出声明:概述 / throw抛出异常 / throws声明异常
  • 异常处理新特性:简介 / 多异常捕获 / 自动资源管理
  • 自定义异常:简介 / 基本语法 / 最佳实践
  • 空指针异常:简介 / 产生原因 / 典型情况 / 解决办法
  • IO流概念:概念 / 作用 / 分类 / 输入流与输出流 / 字节流与字符流 / 节点流与处理流
  • IO流API:API分类 / 核心API介绍
  • File文件类:概述 / 方法与属性 / 文件的创建 / 其他操作 / Path路径操作
  • InputStream字节输入流:简介 / 常用子类 / 常用方法 / 代码实现
  • OutputStream字节输出流:简介 / 常用子类 / 常用方法 / 代码实现
  • 字节缓冲流:简介 / 常用子类 / 基本用法
  • Reader字符输入流:简介 / 常用子类 / 常用方法 / 代码实现
  • Writer字符输出流:简介 / 常用子类 / 常用方法 / 代码实现
  • 字符缓冲流:简介 / 常用子类 / 基本用法
  • 编码问题:简介 / 常用编码 / 中文乱码问题 / 转换流设置编码
  • BIO阻塞式IO:简介 / 缺陷 / 使用场景 / 基本概念 / 代码案例
  • NIO非阻塞式IO:简介 / 基本概念 / 开发步骤 / 读取数据 / 写入数据
  • AIO移步非阻塞IO:简介 / 工作原理 / 异步通道 / 工作流程 / 代码实现
  • 线程:概念 / 多线程概念 / 进程 /
  • 创建方式:创建方式 / 继承Thread类 / 实现Runnable接口 / Lambda表达式 / 实现Callable接口 / 使用Executor框架
  • 核心API:核心API / 常用方法
  • 线程池:概念 / 核心API / 实现案例
  • 线程状态:简介 / 状态切换 / 代码实现 / 阻塞状态 / 等待状态
  • 多线程:概念 / 使用场景 / 创建方式
  • 线程安全:存在的问题 / 解决办法
  • 线程通信:概念 / 通信方式 / 等待与唤醒 / 代码实现
  • 线程同步:概念 / 同步方式 /
  • 互斥锁: 概念 / 实现方式
  • synchronized:简介 / 基本语法 / 代码实现 / 优化技巧 / 实现原理
  • 线程安全:概念 / 实现方式
  • volalile:简介 / 基本语法 / 代码实现 / 可见性 / 禁止指令重排 / 屏障指令
  • 线程死锁:概念 / 代码案例 / 产生条件 / 解决办法 / 案例优化

Day39 - 网络编程

  • 网络编程:简介 / 技术分类 / Socket编程 / URL编程 / HTTP编程 / RMI编程 / JDBC编程
  • Socket编程:简介 / 通信流程 / 核心API / 单向通信 / 双向通信 / 注意事项
  • URL与HTTP编程:简介 / URL类 / URLConnection类 / HttpURLConnection类 / HttpClient类
  • 枚举:概念 / 特点 / 使用场景 / 基本使用 / Enum类 / 枚举扩展类
  • 注解:概念 / 使用场景 / 注解类型 / 基本使用 / 自定义注解

Day41 - 反射

  • 反射:概念 / 使用场景 / 注意事项 / 获取字节码 / 常用操作
  • 高级用法:反射操作注解 / ORM框架简介 / 手写ORM框架
  • XML文档:XML简介 / 使用场景 / 文档构成 / 文档规范
  • XML解析:概念 / 解析方式 / DOM解析 / PULL解析
  • JSON简介:概念 / 优缺点 / 使用场景 / JSON语法
  • JSON解析:概述 / 解析原理 / Jackson解析 / 序列化 / 反序列化

Day43 - 单元测试

  • 测试:简介 / 分类 / 测试工具
  • 单元测试:概念 / 常用框架
  • JUnit框架:简介 / 特点 / 使用场景 / 常用注解 / 测试用例 / 异常处理 / 处理条件

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /