Java基础
2021-10-02 16:29:12 49 举报
AI智能生成
Java基础知识思维导图
作者其他创作
大纲/内容
java概述
Java简介
Java发展历程
Java语言特点
简单
面向对象
分布式
多线程
高性能
跨平台
可移植
安全
健壮
动态
jdk安装与环境变量的配置
下载JDK
安装JDK
配置环境变量
测试JDK是否安装成功
环境变量详解
JAV—HOME
Path
CLASSPATH
CLASSPATH详解
JVM、JRE、和JDK的关系
JVM
JRE
JDK
Java是编译型还是解释型语言
编译型语言和解释型语言
编译型语言
解释型语言
混合型语言
Java是什么语言
动态类型语言和静态类型语言
动态类型语言
静态类型语言
动态语言和静态语言
动态语言
静态语言
基础语法
Java标识符
定义
组成规则
命名原则
注意事项
Java关键字(Java 8版本)
定义
关键字(Java8版本)
注意事项
Java注释
定义
分类
作用
注意事项
Java访问修饰符
定义
分类
访问修饰符图
Java分隔符
定义
分类
注意事项
Java转义字符
定义
常见转义字符表
Java中需要转义的字符
Java进制
定义
常用进制类型
进制转换
Java流程控制语句
定义
分类
顺序结构
分支结构(选择结构)
定义
分类
if分支结构
第一种格式
第二种格式
第三种格式
注意事项
switch分支结构
执行流程
注意事项
if分支结构和switch分支结构区别
循环结构
定义
分类
for循环语句
执行流程
格式
举例
foreach循环语句
执行流程
格式
举例
定义
while循环语句
格式
执行流程
举例
do…while循环语句
格式
执行流程
举例
三种循环的区别
跳转语句(控制循环结构)
定义
分类
break
contine
return
Java表达式
定义
类型和值
运算顺序
举例
Java运算符
定义
分类
算术运算符
比较运算符
赋值运算符
逻辑运算符
位运算符
三元运算符
运算符的优先级
Java变量
定义
分类
按被申明的位置划分
成员变量
类变量(静态变量)独立于方法之外的变量,用 static 修饰
实例变量(非静态变量):独立于方法之外的变量,不过没有 static 修饰。
类变量和实例变量的区别
调用方式
存储位置
生命周期
与对象的相关性
局部变量
成员变量和局部变量的区别
作用域
存储位置
生命周期
初始值
使用原则
按所属的数据类型划分
基本数据类型变量
基本数据类型
变量的定义格式
注意
引用数据类型变量
定义格式
注意事项
Java常量
定义
分类
举例
注意事项
Java数据类型
定义
分类
基本数据类型
引用数据类型
计算机存储单元
定义
常用存储单元关系
Java基本数据类型图
数据类型转换
定义
分类
隐式转换
显示转换
Java反射
概述
定义
用途
反射最重要的用途就是开发各种通用框架
Java反射框架提供以下功能
反射的优缺点
优点
缺点
反射机制的相关类
class类
定义
获取类的相关方法
获取类中属性的相关方法
获取类中注解的相关方法
获取类中构造器的方法
获取类中方法相关的方法
类中其他重要方法
field类
定义
相关方法
method类
定义
相关方法
constructor类
定义
相关方法
示例
获取class类对象的三种方法
反射常用类和方法测试
总结
Java语法糖
解语法糖
模块一、switich支持string与枚举
模块二、泛型和类型擦除
模块三、自动装箱和拆箱
模块四、方法变长参数
模块五、枚举
模块六、内部类
模块七、条件编译
模块八、断言
模块九、数值字面值
模块十、增强for循环
模块十一、try-with-resource语句
模块十二、lambda
可能遇到的坑
泛型-当泛型遇到重载
泛型-当泛型遇到catch
泛型-当泛型内包含静态变量
自动装箱与拆箱-对象相等比较
增强for循环
总结
Java注解
为什么要引入注解
什么是注解
注解的用途
注解的分类
元注解
@Retention
@Documented
@Target
@Inherited
@Repeatable
注解属性
快捷方式
注解不支持继承
申明注解
Java预置的注解
@Deprecatad
@Override
@SuppressWarnings
@SafeVarargs
@Functionallnterface
注解应用的案例
总结
JSON简介
概述
结构组成
语法规则
JSON的形式
对象
数组
Properties类简介
概述
常用方法
常用方法实践
写入
读取
遍历
XML简介
什么是XML
xml用途
xml语法
xml文档声明
元素
属性
注释
转义字符
CDATA区
处理指令
xml解析
开发中常见的解析方式有三种
解析器
常见的解析开发包
DOM解析原理及结构模型
dom4j技术栗子
xml的约束
作用
约束的分类
约束详解
方式一:内部关联
方式二:外部关联-系统关联
方式三:外部关联-公共关联
dtd约束
schema约束
YML简介
YML是什么
YML的优点
YML语法
1、约定
2、键值关系
1、普通数值(字面值)
2、日期
3、对象(属性和值)、Map(键值对)
4、数组、list、set
5、数组对象、list对象、set对象
6、Java待码示例
3、文档快
Java8新特性-Lambda表达式
简介
使用Lambda表达式的前提
基础语法
Lambda表达式的重要特征
使用Lambda表达式的优缺点
函数式接口
案例1无参无返回
案例2有参有返回
案例3final类型参数
Java8内置的函数式接口
Function接口
Consumer接口
Predicate接口
Supplier接口
面向对象
什么是面向对象
面向对象oop概述
面向过程和面向对象的区别
面向对象三大特性五大原则
面向对象三大特性
五大基本原则
总结
Java面向对象知识点整理
面向对象
定义
三大特征
三大思想
类与对象
匿名对象
创建对象的内存分析
栈(stack)
存储速度快的原因
堆(heap)
垃圾回收器回收堆内存的规则 :
方法区
方法区的实现的演变
运行时常量池和字符串常量吃的变化
pc寄存器
本地方法栈
内部类
成员内部类
局部内部类
匿名内部类
静态内部类
包装类
拆箱和装箱操作
字符串转换
基本数据类型和包装类型的区别
interger类型的重点
抽象类
抽象方法
不能被实例化
常见问题
抽象类和普通类的区别
接口
面向接口编程思想
全局变量和抽象方法的简写
接口的实现implements
接口的继承extends
supper
接口与抽象类的区别
多态
多态的体现
多态的使用:对象的类型转换
instanceof
object类
object的多态
tospring()
equals()
equals方法重写的五个特性
可变参数
递归
异常处理
try+catch的处理流程
1.发生了异常(JVM根据异常的情况,创建了一个异常对象-包含了异常信息)2. main未处理,自动将异常抛给了main的调用者JVM3. JVM对异常信息进行了响应(将异常信息显示到控制台,中断处理)
finally
异常体系结构
throws关键字
throw
RuntimeExcepion与Exception的区别
自定义异常类
try-with-resource
构造方法(构造器)
重载(overload)
重写(override)
重写与重载的区别
Java两种核心机制
Java虚拟机
垃圾回收器
Java跨平台原理
标识符
关键字
this
static
final
权限修饰符
封装private
代码块
包
包的使用规则
集合框架
Java集合框架总结
简介
特点
使用集合框架的好处
iterator接口
ListIterator接口
单列集合继承关系图
List集合
List常用方法
ArrayList、LinkedList、Vector 的区别
遍历时操作元素
Set集合
z增删改查、获取、判断
HashSet、TreeSet、LinkedHashSet的区别
HashSet如何检查重复
Collection接口
map接口
双列集合继承关系图
Map常用方法
HashMap、HashTable、TreeMap的区别
HashMap在JDK1.7和JDK1.8中有哪些不同
集合·工具类collections
Collection 和 Collections的区别
数组工具类arrays
用基本数据类型的数组转换ArrayList,ArrayList的size有问题
asList转换得到的ArrayList不是java.util.ArrayList
如何选用集合
ArrayList(JDK1.8)源码分析
简介
继承关系图
成员变量
构造方法
内部类
核心方法
add()方法(有四个)
对数组的容量进行调整
大数据插入问题
remove()方法
get()方法
set()方法
indexOf()方法
contains()方法
toArray()方法
System。arraycopy()和Arrays.copyOf()方法
System.arraycopy()方法
Arrays.copyOf()方法
两者的联系与区别
HashMap(JDK1.8)源码解析
简介
特点
数据结构
JDK1.8之前
JDK1.8之后
JDK1.7 VS JDK1.8 比较
继承关系图
成员变量
capacity、threshold和loadFactor之间的关系:
构造方法
tableSizeFor()方法说明
静态内部类
Node
TreeNode
核心方法
hash()算法
JDK 1.8 HashMap 的 hash 方法源码:
put()方法
执行流程
resize()方法
treeifyBin()方法
get()方法
remove()方法
遍历
LinkedHashMap(JDK1.8)源码解析
概述
原理
源码分析
entry的继承体系
链表的建立过程
链表节点的删除过程
访问顺序的维护过程
基于 LinkedHashMap 实现缓存
总结
LinkedList(JDK1.8)源码解析
概述
继承体系
源码分析
查找
遍历
插入
删除
总结
TreeMap(JDK1.8)源码解析
简介
概览
源码分析
查找
遍历
插入
删除
总结
IO流
前言
初识JavaIO
1.1 IO流分类
输入流与输出流
字节流与字符流
为什么要有字符流
节点流与处理流
1.2 案例实操
fileInputStream、FileOutputStream(字节流)
BufferedInputStream、BufferedOutputStream(缓冲字节流)
InputStreamReader、OutputStreamWriter(字符流)
字符流便捷类
BufferedReader、BufferedWriter(字符缓冲流)
IO流对象
2.1 File类
File类的构造方法
File类的常用方法
File类使用实例
2.2 字节流
2.3 字符流
2.4 序列化
基本概念
序列化和反序列化的定义:
2、json/xml的数据传递:
3、序列化优点:
4、序列化算法需要做的事:
Java实现序列化和反序列化的过程
1、实现序列化的必备要求:
2、JDK中序列化和反序列化的API:
3、实现序列化和反序列化的三种实现:
序列化和反序列化的注意点
IO流方法
3.1 字节流方法
3.2 字符流方法
附加内容
4.1 位、字节、字符
4.2 IO流效率对比
4.3 NIO
泛型
网络编程
网络概述
计算机网络概述
网络编程概述
网络通讯方式
网络编程技术
网络编程步骤
客户端网络编程步骤
建立网络链接
交换数据
关闭网络链接
服务端网络编程步骤
监听端口
获得链接
交换数据
关闭连接
Java网络编程技术
TCP编程
如何复用socket链接
如何使服务器端支持多个客户端同时工作
UDP编程
DatagramSocket
DatagramPacket
网络协议
网络编程示例
质数判别示例
猜数字小游戏
常用API
一、JAVA常用API
java.lang.Math
java.lang.String(StringBuilder线程不安全,StringBuffer线程安全)
java.util.Scanner
for each循环
java.util.Arrays
java.util.Radom
java.lang.Object
java.lang.Class
断言
二、JAVA集合框架
java.util.Collection<E>
java.util.Iterator<E>
Java库中具体集合
1、List
java.util.List<E>
java.util.ListIterator<E>
java.util.ArrayList<E>
java.util.LinkedList<E>
2、Set
java.util.HashSet<E>
java.util.LinkedHashSet<E>
java.util.TreeSet<E>
3、队列
java.util.Queue<E>(接口)
java.util.Deque<E>
java.util.ProrityQueue<E>
4、Map接口
java.util.Map<K,V>
java.util.HashMap<K,V>
java.util.LinkedHashMap<K,V>
java.util.TreeHashMap<K,V>
5、其他集合类
java.util.Vector<E>
java.util.Stack<E>
java.util.HashTable
java.util.ConcurrentHashMap
java.util.CopyOnWriteArrayList
java.util.CopyOnWriteArraySet
6、泛型集合算法
6.1 排序
6.2 查找
6.3 其他
三、并发部分API
java.lang.Runnable
java.lang.Thread
锁对象
synchronized关键字(内置锁)
使用synchronized如何设置条件变量
volatile域
java.lang.ThreadLocal<T>
Executor类执行器
日期时间API
Date
构造函数与常用方法
日期比较
测试Date构造方法和常用方法
SimpleDateFormat
使用SimpleDateFormat测试日期和字符串的相互转换
DateFormat格式代码
Calendar
创建一个代表系统当前日期的Calendar对象
创建一个指定日期的Calendar对象
Calendar类对象字段类型
Calendar类对象信息的设置
测试Calendar类对象信息的获得,创建一个指定日期的Calendar对象
GregorianCalendar
构造函数与常用方法
测试GregorianCalendar构造方法和常用方法
Timestamp
常用工具类库
HttpClient工具类
WGS84地球坐标系,GCJ02火星坐标系,BD09百度坐标系简介与转换
Lombok简介、使用、工作原理、优缺点
Java几种常用JSON库性能比较
单元测试
异常
异常的概念
异常的分类
异常的产生
异常的传递
异常的处理
自定义异常
自定义异常案例
子主题
异常
Java异常总结
Java异常架构与异常关键字
Java异常处理流程
如何选择异常类型
Java异常常见面试题
Java异常处理最佳实践
日志
常用日志框架Log4j,Logback,Log4j2性能比较与日志门面SLF4J简介
日志作用
Apache Log4j2详解
Log4j2同步日志,混合日志和异步日志配置详解
Log4j2配置文件详解
Log4j2的Appenders配置详解
Log4j2的Filters配置详解
Log4j2的Policy触发策略与Strategy滚动策略配置详解
Log4j2的Loggers配置详解
java8新特性
Java8新特性-Lambda表达式
Java8新特性-Optional
Java8新特性-Stream
Java8新特性-Base64
Java8新特性-日期时间API
0 条评论
下一页