学习路线
Java基础
推荐书籍:《Java编程思想》, 《java核心技术》
Object
有哪些常用方法?
clone 浅拷贝、深拷贝的区别?
equals 子类重写equals方法,为什么要重写, 和==的区别?
toString 、hashCode
基础类型、包装类型有哪些类型,占用几个字节?有什么区别?
String、StringBuilder、StringBuffer
有什么区别?为什么String不可变?
final class
Collection
有哪些常用的集合对象;List、Set、Map适用场景
数据是怎么存储的
有序集合和无序集合
如何排序
IO流
字节流、字符流
java IO: 装饰器模式的使用
接口和抽象类
使用场景/区别
继承和实现
作用域
private
默认
protected
public
关键字
try catch finally
finally和return的执行顺序
static
static 和 非static有什么区别
final
加final修饰的类、属性、方法,有什么不同
编码规范
- Java代码规范
Java进阶
Java并发
推荐书籍:《JAVA并发编程实战》
线程安全、同步
synchronized
Lock
volatile
保证数据的可见性,不能防止并发竞争
ThreadLocal
解决线程安全问题,非同步
以上所列的使用场景, 能解决什么问题
并发
CyclicBarrier(栅栏)、CountDownLatch(闭锁)
同步辅助
Semaphore(信号量)
Future
线程池
线程池原理及应用
生产者和消费者
六大设计原则
单一职责
一个类/一个方法只做一件事
依赖倒置原则
依赖抽象,不依赖于具体。 面向接口编程
里氏替代原则
父类出现的地方,都可以用子类替代
迪米特法则
一个类之和自己的朋友打交代,尽量封装
接口隔离原则
功能单一,不要承担过多的职责
开闭原则
对扩展开放,对修改关闭
设计模式
推荐书籍:《GOF设计模式》、《Head First设计模式》、《大话设计模式》
创建型模式
简单工厂模式/工厂方法模式 (Factory Method)
抽象工厂模式
单例模式
创建者模式 (Builder)
原型模式 (Prototype)
结构型模式
代理模式 (proxy)
适配器模式 (Adapter)
装饰器模式
外观门脸模式
桥模式
组合模式
享元模式
行为型模式
观察者模式
模板方法模式
状态模式
策略模式
职责链模式
命令模式
访问者模式
调停者模式
备忘录模式
迭代器模式
解释器模式
代码质量
代码走查
静态代码走查
源代码走查
PMD
缺陷模式匹配
Jtest
缺陷模式匹配;数据流分析
checkStyle
缺陷模式匹配
字节码走查
findBugs
缺陷模式匹配;数据流分析
理论/技术
缺陷模式匹配
类型推断
模型检查
数据流分析
代码重构、优化
推荐书籍:《重构-改善代码的既有设计》、《clean code》
必要条件
可验证
框架
SpringMVC
Bean管理(IOC)
定义
配置文件
注解 (Service、Controller、Repository、Component)
id、name的设置
注入
构造器
setter
field (注解)
Autowired
默认按类型注入
Resource (Java自带)
默认按名称注入
IOC有什么优缺点
AOP
代理模式的应用
Java的代理、Cglib代理
事务的控制
启动加载流程
Dispatch分发流程
MyBatis
基础配置使用
#和$的区别
深入
Jvm
《深入理解Java虚拟机》(周志明,第一版、第二版)
Java源码、类库
操作系统
《深入理解计算计系统》、《从哲学层次看操作系统》
网络
《tcp/ip详解卷一、二、三》
数据结构、算法
数据库-Oracle
DDL
CREATE
ALTER
MODIFY
DROP, TRUNCATE
DML
基础增删改查
表关联查询
group, order by, having等
SQL优化
隐士函数转换
exists, in
索引
B树索引
位图索引
预编译
闪回 (FlashBack)
ACID 事务隔离级别
其他
rownum
rowid和for update更新的区别
学习资源
Java系列
Java基础知识、集合、JVM、多线程、设计模式等介绍;Linux常用命令