从事Java开发已多年,在这整理了一些有关Java的知识体系,这不是最终版,没有最好只有更好,我会不定期的更新。
Java知识体系主要包括基础知识,工具,并发编程,数据结构与算法,数据库,JVM,架构设计,应用框架,中间件,微服务架构,分布式架构等等
注意:学习编程没有捷径
少年易老学难成,一寸光阴不可轻。未觉池塘春草梦,阶前梧叶已秋声 。—朱熹《劝学诗》
勤奋才是改变你命运的唯一捷径。
一、JavaSE基础体系:
第一步:学习JAVA的开发环境配置、开发第一个Java程序。也建议大家开始使用eclipse等IDE,不必纠结是不是一定要从记事本开始。
- JRE 和 JDK 的区别是什么?
- 如何安装JAVA JDK?
- 请问如何在win10系统上安装java?
- Java零基础怎么入门?建议先学什么?
- java写了第一个程序结果出问题了?
- 如何扎实自己的Java基础?
- 用dos命令运行Java-version时没有显示版本?
第二步:学习数据类型、运算符、变量。这是编程的基础,是程序的“砖块”。这些内容大多数编程语言都有,而且非常类似。
变量、数据类型、运算符
- 二进制和十进制的转化
- 注释、单行注释、多行注释、文本注释、注释内容和字节码的关系
- 标识符、关键字、驼峰原则
- 变量的本质、内存画图、变量声明和初始化
- 变量的分类和作用域(局部变量、成员变量、静态变量)
- 常量和Final
- 基本数据类型介绍
- 整型变量和整型常量
- 浮点类型、float、double
- char字符型、转义字符
- boolean布尔型、if语句使用要点、布尔类型占用空间问题
- 运算符介绍
- 算数运算符(二元、自增、自减)
- 赋值和赋值运算符
- 关系运算符详解
- 逻辑运算符、短路运算符详解
- 位运算符详解
- 字符串连接符
- 条件运算符(三元运算符)
- 运算符优先级问题
- 自动类型转换详解
- 强制类型装换详解
- 基本数据类型装换常见错误、溢出、L问题
- 使用Scanner获取键盘输入
- 1.北京高淇Java300集(Java强烈推荐)
Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程_Java语言入门到精通 - 2.JavaSE基础全套-从零开始进阶之大神(推荐)
系统教学JavaSE基础全套课程-从0开始进阶至大神_线下录制Java系列课程Java从入门到精通_/JAVA基础/数组/OOP/集合/IO流_
第三步:学习控制语句。这是编程的基础,是程序的“混凝土”。有了控制语句+变量,理论上你就可以写任意的程序了。因此,这是进入程序的门槛,需要大量的练习。
控制语句
- 控制语句和实现逻辑对应
- if单选结构
- if_elseif_else多选结构
- switch语句_IDEA更换主题
- 循环_while
- 循环_for循环_dowhile
- 嵌套循环
- break和continue语句_标签_控制语句底层原理
- 写一个年薪计算机_百度查问题的秘诀(重要)
- 个人所得税计算器软件
- 方法核心详解_天才思维模型教你高手学习思维模式
- 方法的重载
- 递归结构讲解_递归头_递归体
- 1.系统教学JavaSE基础全套课程
系统教学JavaSE基础全套课程-从0开始进阶至大神_线下录制Java系列课程Java从入门到精通_/JAVA基础/数组/OOP/集合/IO流_哔哩哔哩_bilibili - 2.系统教学JavaSE基础全套课程【续集】
系统教学JavaSE基础全套课程【续集】-从0开始进阶至大神_线下录制Java系列课程Java从入门到精通_/JAVA基础/数组/OOP/集合/IO流_哔哩哔哩_bilibili
第四步:学习面向对象基础。通过类、对象、包等基本概念讲解。学习的时候,一定要在此处介入内存分析,这样可以对于对象等知识有非常深刻的理解。
面向对象编程-基础
- 面向过程和面向对象的区别
- 类和对象的概述
- 类的属性和方法
- 创建对象内存分析
- 构造方法(Construtor)及重载
- 对象类型的参数传递
- this关键字
- static关键字详解
- 局部代码块、构造代码块和静态代码块
- package和import详解
- JavaDoc生成API文档
第五步:继续面向对象,主要包含三大特征:继承、封装,以及接口、抽象类、内部类等概念。这些概念需要掌握。但是对于初学者来说,先熟悉语法。通过后面的学习再深入。不要期待初学时候就能深刻领会这些概念。
面向对象编程-进阶
- 面向对象的三大特性
- 面向对象之【封装(Encapsulation)】
- 访问权限修饰符
- 面向对象之【继承(Inheritance)】
- Object类
- 方法重写Override
- super关键字详解
- 重写equals()和toString()
- 继承中对象创建的内存分析
- 面向对象之【多态(Polymorphism)】
- 向上转型
- 向下转型
- instanceof运算符
- 编译时和运行时详解
- final修饰符
- 抽象类和抽象方法(abstrct)
- 接口的定义和实现
- JDK8的接口新特性
- 接口应用:内部类比较器Comparable
- 内部类详解
- Java的内存管理与垃圾回收
- **Java面向对象编程_OOP基础深入讲解
**Java面向对象编程重基础深入讲解_OOP面向对象Java基础干货分享/JavaSE/面向对象编程/OOP程序设计 - 【大力推荐】OOP面向对象Java基础干货分享
【大力推荐】OOP面向对象Java基础干货分享/JavaSE/面向对象编程/OOP程序设计_哔哩哔哩_bilibili - java面向对象编程_java79节课精讲面对对象
java面向对象编程_java79节课精讲面对对象_通俗讲讲编程的面向对象_面向对象三大范式_java基础面向对象编程_java程序员面向对象开发_精讲面向对象_哔哩哔哩_bilibili
关于面向对象的文章:
如果想要更详细的面向对象内容,可以观看我的几篇文章哦:
Dimple:Java入门姿势【面向对象2】定义类与创建对象_了解局部变量
Dimple:Java入门姿势【面向对象3】构造方法及其重载_方法的调用
Dimple:Java入门姿势【面向对象4】 static关键字
Dimple:Java入门姿势【面向对象5】 package和import.
Dimple:Java入门姿势【面向对象6】三大特性之一封装性
Dimple:Java入门姿势【面向对象7】三大特性之一继承性
Dimple:Java入门姿势【面向对象8】继承性-重要的知识点
第六步:异常机制。Java程序的安全需要异常机制,这是必学内容。当然,也非常简单。学习过程中,先不要揪着什么自定义异常不放,学会基本用法即可。
异常机制
- 异常的概述
- 异常的执行过程与分析
- try-catch-finally捕捉异常
- throw抛出异常
- throws声明异常
- 异常继承体系
- 运行时异常和编译异常
- 自定义异常
- JavaSE基础入门教程
JavaSE基础入门教程-只为初学者而著_高淇Java300集/Java零基础/java/Java入门到精通/JAVA编程/JavaSE/Java基础_哔哩哔哩_bilibili - java基础入门教_java基础视频java基础教程
java基础入门教_java基础视频java基础教程_java300集java入门_java零基础_java视频 java零基础视频教程_java全套课_哔哩哔哩_bilibili
第七步:常用类和JDK源码阅读。学习常用类的用法:包装类、字符串相关类、实践类、Math类、File类等。学习过程中,只学怎么用这些API就及格了。要优秀,要培养高手思维,一定要结合JDK源码,一开始就培养阅读源码的习惯(虽然,可能大多数看不懂)。
Java常用类(在这里简单举例出常用的,还有很多伙伴们请自行了解)
- Wrapper包装类
- 自动装箱和自动拆箱
- 包装类的源码分析
- String类的使用与内存原理
- String类的源码分析
- StringBuffer
- StringBuilder
- 字符串处理类性能分析
- Date类
- System类
- DateFormat类
- Calendat类
- Math类
- BigInteger类和BigDecimal类
- Random类
- 枚举类
- File类
- 常见的面试题讲述与分析
- 【基础夯实】Java常用类实战基础教程
【基础夯实】Java常用类实战基础教程_Java八大常用类核心基础_Java常用类基础入门/Java包装类/String类_哔哩哔哩_bilibili
第八步:数组和算法。学习数组时,注重结合循环管理数组。也要从底层内存理解数组,这既是学数组也是复习面向对象;再结合一些算法,比如排序和搜索算法,既练习数组的用法,也学习了算法知识,为应对企业笔试和面试做好准备。
数据结构算法
- 数据结构的概述
- 线性表
- 顺序表
- 链表
- 栈和队列
- 树
- 二叉树
- 二叉查找树
- 二叉平衡树
- 黑红树
- 图
- 冒泡排序
- 选择排序
- 递归
- 折半查找
- Java基础入门必学知识数据结构与算法_Java数据结构与算法基础到进阶/Java基础入门进阶/Java数据结构分析/Java数据结构常见问题_哔哩哔哩_bilibili
- JavaSE数据结构算法实战教程_数据结构算法实战课程/java数据结构/Java算法实战/JavaSE学习/Java编程_哔哩哔哩_bilibili
- JavaSE数据结构和算法精讲视频教程_Java架构之红黑树/二叉树/AVL树经典数据结构与算法_JavaSE数据结构和算法视频教程_JavaSE数据结构教程_哔哩哔哩_bilibili
第九步:容器和数据结构。容器有:List、Set、Map。学习这三种容器用法只需要一两个小时。但,此时你要结合数据结构,再结合JDK源码讲解。这就是“高手习惯”,让大家既学习容器,也学习了数据结构,打深了内功,应对企业面试绰绰有余。
集合(容器)
- 集合和数组的联系和区别
- 集合框架体系
- ArrayList的使用和源码分析
- 集合中使用泛型
- LinkedList的使用和源码分析
- HashSet的使用和源码分析
- 哈希表及原理
- TreeSet的使用和源码分析
- 比较器Comparable和Comparator
- HashMap的使用和源码分析
- TreeMap的使用和源码分析
- Iterator于ListIterator
- Collections工具类
- 旧集合类Vector、Hashtable
- 集合总结和选择依据
- 泛型接口
- 泛型类
- 泛型方法
- 编程程序员java集合和数组java集合Listjava集合哈希表java集合Mapjava集合Collectionsjava泛型java泛型接口java集合_哔哩哔哩_bilibili
- Java集合框架完整版最新教程入门到精通_List_Set_Map_通俗易懂Java集合课程视频教程_哔哩哔哩_bilibili
第十步:IO流技术。学会各种常用流即可,掌握一些工具类的用法,比如:Apache IOUtil这样会让你在以后使用时效率大增。
IO流
- IO流的概念
- IO流的分类及其原理分析
- 文件流FlieInputStream、FileOutputStream
- 缓冲流BufferedInputStream、BufferedOutputStream
- 数据流ObjectInputStream、ObjectOutputStream
- 序列化和反序列化
- 转换流InputStreamReader、OutputStreamWriter
- 打印流PrintWrite和PrintStream
- 数组流ByteArrayOutputStream、ByteArrayInputStream
- 使用IO复制文件夹
- JavaSE深入掌握IO流剖析File类品质课程_JavaSE阶段IO流课程教程_Java课程/Java教程/JavaIO流实战课程_哔哩哔哩_bilibili
- 系统教学JavaSE基础全套课程-从0开始进阶至大神_线下录制Java系列课程Java从入门到精通_/JAVA基础/数组/OOP/集合/IO流_哔哩哔哩_bilibili
- IO流_IO流精讲_IO流概念和分类_IO流的作用和原理_lo流基础用法_ java基础学习_IO流底层架构_文件字节流_哔哩哔哩_bilibili
- javaSE部分IO流精讲视频教程_JavaSE部分File类与io流视频课程教程_哔哩哔哩_bilibili
第十一步:多线程技术。这也是笔试和面试中常见的内容。我们要学习多线程基本使用、生命周期、状态转化。如果学有余力,学习一下生产者消费者模式,让你一开始就具备架构的思维;既然学,就按照“高标准”要求自己。
多线程
- 进程和线程
- 线程的创建与启动
- 创建线程的三种方式对比
- 线程的生命周期
- 线程控制
- 多线程的安全问题与解决办法
- 线程的同步:同步代码块
- 线程的同步:同步方法
- 线程的同步:Lock锁
- 线程的死锁问题
- 线程通信
- Condition
- 线程的完整生命周期
- 线程池ThreadPoolExecutor
- ForkJoin框架
- ThreadLocal类
- Java多线程实战精品教程_JavaSE多线程视频教程详解_包你学会_灵活运用_哔哩哔哩_bilibili
- JavaSE多线程全套视频教程(12集)_多线程实战系列_JavaSE多线程全面深入学习_JavaSE多线程JDK新特征 _JavaSE多线程基础强化视频教程_哔哩哔哩_bilibili
第十二步:网络编程。工作中直接用到的不多,而且socket编程范式差不多,了解即可。毕竟直接让你编写基于socket底层代码的情况比较少见
网络编程
- 计算机网络基础知识
- 网络通信协议
- OSI参考模型
- TCP/IP参考模型
- 数据的封装与拆封原理解析
- TCP协议
- UDP协议
- IP地址和端口号
- URL和Socket
- 使用TCP编程实现登录功能
- 使用UDP编程实现客服系统
- 使用TCP编程实现文件上传
- java网络编程实战讲解_java网络编程详细教程_轻松学习java网络编程_java网络编程实战开发_java网络编程全套视频精讲_java网络编程入门教程_哔哩哔哩_bilibili
- JavaSE基础入门教程-只为初学者而著_高淇Java300集/Java零基础/java/Java入门到精通/JAVA编程/JavaSE/Java基础_哔哩哔哩_bilibili
- Java基础入门必学知识数据结构与算法_Java数据结构与算法基础到进阶_Java面试常见数据结构和算法问题_排序算法_递归_折半查询_栈和队列_链表_哔哩哔哩_bilibili
第十三步: 设计者模式,掌握常用的几种设计模式,在工作中就会有出奇的效果。
设计模式
- 设计模式入门
- 面向对象设计七大原则
- 简单工厂模式
- 工厂方法模式
- 单例模式
- 原型模式
- 装饰模式
- 适配器模式
- 外观模式
- GOF23种设计模式讲解_Java gof23种设计模式详解课程_从单例到备忘录模式 23种模式详解_哔哩哔哩_bilibili
- JavaSE知识基础全套-从0开始进阶大神_JavaSE基础知识体系从入门到精通框架_/JAVA基础/数组/OOP/集合/IO流_哔哩哔哩_bilibili
第十三步:做个项目吧。 学了这么多,不做个东西怎么对得起自己?不管是小游戏项目也好,还是基于swing的项目,还是其他控制台项目。
JavaSE练手项目:
经典小游戏,乐趣无穷夯实基础,玩到又学到~~
- 推箱子
Java游戏项目“推箱子”基础实战教程_拒绝枯燥无味Java推箱子项目2天轻松掌握_Java项目编写推箱子游戏_项目实战_java项目教程_Java_哔哩哔哩_bilibili - 黄金矿工
只用了2小时做出了Java黄金矿工小游戏项目_java初级项目_java练手项目_java项目实战_Java游戏开发实战教学_java小游戏_哔哩哔哩_bilibili - 桌球游戏
Java桌球游戏项目_手把手教你用Java开发桌球小游戏_Java初学者项目_Java基础实战项目进阶_哔哩哔哩_bilibili - 俄罗斯方块
手把手教你用Java开发俄罗斯方块小游戏_java练手项目_巩固JavaSE基础_java小游戏_哔哩哔哩_bilibili - 飞机大战
飞机大战1.0进阶版_Java28个功能点新手能力提升必备_哔哩哔哩_bilibili - 贪吃蛇
1小时教你做出了Java贪吃蛇小游戏项目_java练手项目_java项目实战_java小游戏_Java游戏开发实战教学_java初级项目_哔哩哔哩_bilibili
入门书籍推荐:
- 《明解Java》
- 《Java从入门到精通(第4版 附光盘)》
- 《入门很简单丛书:Java Web开发入门很简单》
- 《程序员炼成记 从小白到工程师》
- 《Java从小白到大牛》
- 《JavaWeb项目开发实战入门(全彩版)》
- 《Java精彩编程200例(全彩版)》
- 《Java轻松学》
- 《大话Java:程序设计从入门到精通(含DVD光盘1张)》
- 《Java语言袖珍指南(第二版)》
基础进阶书籍:
- 《Java编程思想(第4版) [thinking in java]》
- 《Java核心技术 卷I:基础知识(原书第10版)》
- 《Java核心技术卷II:高级特性(原书第10版)》
1、《实战java程序设计》
(1)由尚学堂和清华大学出版社联合发布,被誉为"java 界的红宝书”\
2、《程序员修炼手册》
(1)高淇老师自己写的,知识点非常适合学习时候查阅!!!\
3、《程序员面试题集大全》
(1)本套视频汇总了面试题目,附参考答案(提供电子书)\
更多Java详细学习线路图——我会抽时间更新的
以上学习推荐,足以你掌握JavaSE全部知识,万事开头难,本次文章在艰难的路上为你劈荆斩麻。