java知识体系
2017-04-01 12:38:01 0 举报
AI智能生成
java知识体系结构 参考(李刚-疯狂java讲义)
作者其他创作
大纲/内容
概述与开发环境
发展简史
智能家电->竞标失败->互联网开源
sun->oracle
竞争对手及各自优势
C#简介和优势
visual studio开发效率高
只能局限在window平台
Ruby简介和优势
日本人发明的
简洁跨平台、中小型应用
Python简介和优势
20多年历史,成熟稳定
程序运行机制
高级语言的运行机制
编译型
解释型
Java程序的运行机制和JVM
先编译为跨平台的字节码文件
再由JVM解释执行
开发Java的准备
下载和安装Java 8的JDK
设置环境变量
垃圾回收机制
理解面向对象
面向对象
结构化程序设计简介
程序的三种基本结构
面向对象程序设计简介
简介
特征
继承
封装
多态
设计原则
开放-封闭原则
里氏代换原则
依赖倒置原则
接口隔离原则
合成复用原则
迪米特原则 or 最少知识原则
单一职责原则
UML(统一建模语言)介绍
用例图
静态图
类图
包图
对象图
行为图
活动图
状态图
交互图
顺序图
合作图
实现图
配置图
数据类型和运算符
注释
单行注释和多行注释
文档注释
标识符和关键字
分隔符
标识符规则
Java关键字
数据类型分类
基本数据类型
整型
byte
1个字节
short
2个字节
int
4个字节
long
8个字节
字符型
char
2个字节
字符集
浮点型
float
4个字节
double
8个字节
布尔型
boolean
基本类型的类型转换
自动类型转换
强制类型转换
表达式类型的自动提升
引用类型
类
接口
数组
空(null)
运算符
算术运算符
加:+
减:-
乘:*
除:/
求余:%
赋值运算符:=
位运算符
按位与:&
按位或:|
按位非:~
按位异或:^
左移:<<
右移:>>
无符号右移:>>>
扩展后的赋值运算符
算数运算符或位运算符与赋值运算符组合
比较运算符
>
<
>=
<=
==
!=
逻辑运算符
&&:短路与
&:与
||
|
!
^
三目运算符
a>b?a:b
流程控制与数组
顺序结构
分支结构
循环结构
数组类型
理解数组:数组也是一种引用类型
深入数组
内存中的数组
栈内存和堆内存
Java 8增强的工具类:Arrays
面向对象
类和对象
定义类
对象的产生和使用
对象、引用和指针
对象的this引用
方法详解
方法的所属性
方法的参数传递机制
形参个数可变的方法
递归方法
方法重载
成员变量和局部变量
成员变量的初始化和内存中的
运行机制
运行机制
局部变量的初始化和内存中的
运行机制
运行机制
变量的使用规则
隐藏和封装
理解封装
使用访问控制符
package、import和import static
Java的常用包
深入构造器
使用构造器执行初始化
构造器重载
类的继承
继承的特点
重写父类的方法
super限定
调用父类构造器
多态
多态性
引用变量的强制类型转换
instanceof运算符
继承与组合
使用继承的注意点
利用组合实现复用
初始化块
使用初始化块
初始化块和构造器
静态初始化块
Java 8增强的包装类
处理对象
打印对象和toString方法
==和equals方法
类成员
理解类成员
单例(Singleton)类
final修饰符
修饰成员变量
修饰局部变量
修饰基本类型变量和引用类
型变量的区别
型变量的区别
可执行"宏替换"的final变量
final方法
final类
不可变类
缓存实例的不可变类
抽象类
抽象方法和抽象类
抽象类的作用
Java 8改进的接口
接口的概念
Java 8中接口的定义
接口的继承
使用接口
接口和抽象类
面向接口编程
内部类
非静态内部类
静态内部类
使用内部类
局部内部类
Java 8改进的匿名内部类
Java 8新增的Lambda表达式
Lambda表达式入门
Lambda表达式与函数式接口
方法引用与构造器引用
Lambda表达式与匿名内部类的
使用Lambda表达式调用Arrays的类方法
枚举类
手动实现枚举类
枚举类入门
枚举类的成员变量、方法和构造器
实现接口的枚举类
包含抽象方法的枚举类
对象与垃圾回收
对象在内存中的状态
强制垃圾回收
finalize方法
对象的软、弱和虚引用
修饰符的适用范围
使用JAR文件
jar命令详解
创建可执行的JAR包
关于JAR包的技巧
基础类库
与用户互动
运行Java程序的参数
使用Scanner获取键盘输入
系统相关
System类
Runtime类
常用类
Object类
Java 7新增的Objects类
String、StringBuffer和StringBuilder类
Math类
Java 7的ThreadLocalRandom与Random
BigDecimal类
Java 8的日期、时间类
Date类
Calendar类
Java 8新增的日期、时间包
正则表达式
国际化与格式化
Java国际化的思路
Java支持的国家和语言
完成程序国际化
使用MessageFormat处理包含占位符的字符串
使用类文件代替资源文件
使用NumberFormat格式化数字
使用DateFormat格式化日期、时间
使用SimpleDateFormat格式化日期
Java 8新增的日期、时间格式器
使用DateTimeFormatter完成格式化
使用DateTimeFormatter解析字符串
集合
Java集合概述
Collection和Iterator接口
使用Lambda表达式遍历集合
使用Java 8增强的Iterator遍历集
合元素
合元素
使用Lambda表达式遍历Iterator
使用foreach循环遍历集合元素
使用Java 8新增的Predicate操作集合
使用Java 8新增的Stream操作集合
Set集合
HashSet类
LinkedHashSet类
TreeSet类
EnumSet类
各Set实现类的性能分析
List集合
Java 8改进的List接口和
ListIterator接口
ListIterator接口
ArrayList和Vector实现类
固定长度的List
Queue集合
PriorityQueue实现类
Deque接口与ArrayDeque实现类
LinkedList实现类
各种线性表的性能分析
Java 8增强的Map集合
Java 8为Map新增的方法
Java 8改进的HashMap和
Hashtable实现类
Hashtable实现类
LinkedHashMap实现类
使用Properties读写属性文件
SortedMap接口和TreeMap实现类
WeakHashMap实现类
IdentityHashMap实现类
EnumMap实现类
各Map实现类的性能分析
HashSet和HashMap的性能选项
操作集合的工具类:Collections
排序操作
查找、替换操作
同步控制
设置不可变集合
烦琐的接口:Enumeration
泛型
泛型入门
编译时不检查类型的异常
使用泛型
Java 7泛型的"菱形"语法
深入泛型
定义泛型接口、类
从泛型类派生子类
并不存在泛型类
类型通配符
使用类型通配符
设定类型通配符的上限
设定类型形参的上限
泛型方法
定义泛型方法
泛型方法和类型通配符的区别
Java 7的"菱形"语法与泛型构
造器
造器
设定通配符下限
泛型方法与方法重载
Java 8改进的类型推断
擦除和转换
泛型与数组
异常处理
异常概述
异常处理机制
使用try...catch捕获异常
异常类的继承体系
Java 7提供的多异常捕获
访问异常信息
使用finally回收资源
异常处理的嵌套
Java 7的自动关闭资源的try语句
Checked异常和Runtime异常体系
使用throws声明抛出异常
使用throw抛出异常
抛出异常
自定义异常类
catch和throw同时使用
Java 7增强的throw语句
异常链
Java的异常跟踪栈
异常处理规则
不要过度使用异常
不要使用过于庞大的try块
避免使用Catch All语句
不要忽略捕获到的异常
AWT编程
Swing编程
JDBC编程
JDBC基础
SQL语法
关系数据库基本概念和MySQL
基本命令
基本命令
SQL语句基础
DDL语句
数据库约束
索引
视图
DML语句语法
单表查询
数据库函数
分组和组函数
多表连接查询
子查询
子主题
JDBC的典型用法
JDBC 4.2常用接口和类简介
JDBC编程步骤
执行SQL语句的方式
1 使用Java 8新增的
executeLargeUpdate方法执行
DDL和DML语句
executeLargeUpdate方法执行
DDL和DML语句
使用execute方法执行SQL语句
使用PreparedStatement执行SQL
语句
语句
使用CallableStatement调用存储
过程
过程
管理结果集
可滚动、可更新的结果集
处理Blob类型数据
使用ResultSetMetaData分析结
果集
果集
Java 7的RowSet
Java 7新增的RowSetFactory与
RowSet
RowSet
离线RowSet
离线RowSet的查询分页
事务处理
事务的概念和MySQL事务支持
JDBC的事务支持
Java 8增强的批量更新
分析数据库信息
使用DatabaseMetaData分析数据
库信息
库信息
使用系统表分析数据库信息
选择合适的分析方式
使用连接池管理连接
DBCP数据源
C3P0数据源
Annotation
基本Annotation
限定重写父类方法:@Override
标示已过时:@Deprecated
抑制编译器警告:
@SuppressWarnings
@SuppressWarnings
Java 7的"堆污染"警告与
@SafeVarargs
@SafeVarargs
Java 8的函数式接口与@FunctionalInterface
JDK的元Annotation
使用@Retention
使用@Target
使用@Documented
使用@Inherited
自定义Annotation
定义Annotation
提取Annotation信息
使用Annotation的示例
Java 8新增的重复注解
Java 8新增的Type Annotation
编译时处理Annotation
输入/输出
File类
访问文件和目录
文件过滤器
理解Java的IO流
流的分类
流的概念模型
字节流和字符流
InputStream和Reader
OutputStream和Writer
输入/输出流体系
处理流的用法
输入/输出流体系
转换流
推回输入流
重定向标准输入/输出
Java虚拟机读写其他进程的数据
RandomAccessFile
对象序列化
序列化的含义和意义
使用对象流实现序列化
对象引用的序列化
自定义序列化
另一种自定义序列化机制
版本
NIO
Java新IO概述
使用Buffer
使用Channel
字符集和Charset
文件锁
Java 7的NIO.2
Path、Paths和Files核心API
使用FileVisitor遍历文件和目录
使用WatchService监控文件变化
访问文件属性
多线程
线程概述
线程和进程
多线程的优势
线程的创建和启动
继承Thread类创建线程类
实现Runnable接口创建线程类
使用Callable和Future创建线程
创建线程的三种方式对比
线程的生命周期
新建和就绪状态
运行和阻塞状态
线程死亡
控制线程
join线程
后台线程
线程睡眠:sleep
线程让步:yield
改变线程优先级
线程同步
线程安全问题
同步代码块
同步方法
释放同步监视器的锁定
同步锁(Lock)
死锁
线程通信
传统的线程通信
使用Condition控制线程通信
使用阻塞队列(BlockingQueue)
控制线程通信
控制线程通信
线程组和未处理的异常
线程池
Java 8改进的线程池
Java 8增强的ForkJoinPool
线程相关类
ThreadLocal类
包装线程不安全的集合
线程安全的集合类
网络编程
网络编程的基础知识
网络基础知识
IP地址和端口号
Java的基本网络支持
使用InetAddress
使用URLDecoder和URLEncoder
URL、URLConnection和URLPermission
基于TCP协议的网络编程
TCP协议基础
使用ServerSocket创建TCP服务器端
使用Socket进行通信
加入多线程
记录用户信息
半关闭的Socket
使用NIO实现非阻塞Socket通信
使用Java 7的AIO实现非阻塞通信
基于UDP协议的网络编程
UDP协议基础
使用DatagramSocket发送、接收数据
使用MulticastSocket实现多点广播
使用代理服务器
直接使用Proxy创建连接
使用ProxySelector自动选择代理服务器
类加载机制与反射
类的加载、连接和初始化
JVM和类
类的加载
类的连接
类的初始化
类初始化的时机
类加载器
类加载器简介
类加载机制
创建并使用自定义的类加载器
URLClassLoader类
通过反射查看类信息
获得Class对象
从Class中获取信息
Java 8新增的方法参数反射
使用反射生成并操作对象
创建对象
调用方法
访问成员变量值
操作数组
使用反射生成JDK动态代理
使用Proxy和InvocationHandler创建动态代理
动态代理和AOP
反射和泛型
泛型和Class类
使用反射来获取泛型信息
0 条评论
下一页