阿里Java学习计划
2017-06-25 14:15:08 0 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
java学习计划.............................
作者其他创作
大纲/内容
Java学习
JVM
内存模型
内存分为几部分
方法区
存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据
线程共享内存
注意与永久代区别
堆
虚拟机启动时创建
唯一目的存放对象实例,几乎所有的对象实例都在这里分配内存
栈
线程私有
主要存放一些基本类型的变量和对象句柄
程序计数器
当前线程所执行的字节码的行号指示器
本地方法栈
类似虚拟机栈
为Native方法服务
内存溢出
持久代溢出
堆溢出
内存泄漏
通过工具查看GCRoot引用链
工具:JVirtualVM
检查堆参数大小
栈溢出(虚拟机栈或本地方法栈)
StackOverFlowError
请求深度>Max(StackOverFlowError)
OutOfMemoryError
VM申请栈空间无法满足(OutOfMemoryError)
直接内存溢出
使用了NIO
HeapDump文件很小,无明显异常
类加载机制
ClassLoader
Bootstrap
存放于<JAVA_HOME>\\lib目录中
无法被Java程序直接引用
Extension
<JAVA_HOME>\\lib\\ext目录下
可以直接使用扩展类加载器
Application
加载用户类路径(ClassPath)上所指定的类库
双亲委派模型
首先把这个请求委托给他的父类加载器
父加载器反馈自己无法完成这个加载请求,子类加载
避免生成同一个类,如:Object
GC(垃圾回收)
引用计数器(老方法)
Roots Tracing(根元素)
可被访问的
静态
本地局部变量
GC作用
避免内存溢出、内存泄漏
对象生命周期
引用计数法
无法解决循环引用
可达性分析算法
从GC Root是否可达对象
引用
强引用
只要强引用存在就不会回收
软引用
二次回收(内存不足时才会回收)
弱引用
生存至下一次GC
虚引用
作用回收对象时通知
回收方法区
废弃常亮
无用的类
大量反射、动态代理、CGLib频繁自定义ClassLoder
垃圾收集(GC)算法
标记-清除算法
效率和内存碎片问题
复制算法
分区复制回收
适用于对象存活率低的场景(新生代)
标记-整理算法
标记-清除-整理
适用于对象存活率高的场景(老年代)
分代收集算法
根据对象存货周期分为不同的几块
老年代
标记-清理 or 标记-整理 算法
新生代
组成
类加载器
执行引擎
运行数据区
线程共享
Java堆
类结构信息
运行时常量
PC计数器
Java虚拟机栈
Java基础
接口+抽象类
区别
联系
【重要】序列化
对象的状态信息转换为可以存储或传输
实现Serializable
【重要】并发同步
线程池
synchronized
java.util.concurrent.locks
网络编程
socket
TCP/IP
RPC
Java反射机制
概念
c++反射实现
单元测试
JUnit
testng
代理
JDK代理
CGLib 字节码实现
【重要】IO
阻塞+非阻塞
阻塞
非阻塞
同步+异步
同步
异步
Reactor模式
用于同步I/O
Proactor模式
用于异步I/O
NIO
reactor模式
同步非阻塞
集合类
线程安全
Hashmap
Hashtable
Stiplist
CopyOnWriteArrayList
具体类
Collection
Queue
Dequeue
Stack
List
Set
Map
异常
作用
为了不终止程序,处理问题
Throwable
Exception
Error
分类
不可预期异常
可预期异常
锁
重入锁
利用cas操作和lockSupport.park实现
CAS
一种乐观锁技术
OSGi
关键字
final关键字
设计模式
6大原则
单一职责
里氏替换
依赖倒置
接口隔离
迪米特法则
开闭原则
具体设计模式
原型模式
动态代理模式
工厂
简单工厂
抽象工厂
单例模式
策略模式
装饰者
责任链
状态模式
命令行模式
观察者模式
访问者模式
代理模式
组合模式
适配器模式
建造者
【重点】Spring
框架概念
框架=舞台,是逻辑的架子
与类库的区别
类库是工具
容器与Bean
容器--能取能放
bean容器中放入的对象
IOC
不用new、管理生命周期以及管理对象依赖
对修改关闭
对扩展开放
DI(Dependency Injection)
创建对象并组装对象关系
和IOC其实是一个东东,但是更贴切
注入方式
设值注入
构造注入
AOP
织入
切入点
事务管理
分类1
编程式事务管理
声明式事务管理
AOP思想
基于TransactionProxyFactoryBean
基于AspectJ的XML
基于注解
分类2
标注事务
模板事务
实现原理
MVC前段控制器
DispatcherServlet
HandlerAdapter(内部类)
HandlerInterceptor(拦截器)
HandlerMapping
HandlerExecutionChain
ModelandView
ViewResolver
【重点】数据库
锁机制
乐观锁
每次去拿数据的时候都不会上锁,用版本号机制机制判断更新
用于多读的场景
悲观锁
每次在拿数据的时候都会上锁
自旋锁
不断循环询问是否释放
索引
联合索引
sql执行计划
行锁
如果跨jvm读写怎么办
存储过程(类似脚本 非重点)
事务
事务的传播机制(7种)
事务的隔离级别(4个)
分布式事务
Maven
本质:插件框架
POM(Project Object Model)
pom.xml
Coordinates(解决依赖关系)
groupId(项目包名)
主项目标识,反写公司+项目名
Maven项目类似普通项目的模块
artifactId(模块名)
Version
0.0.1(大版本号.分支版本.小版本)
packaging(不算在坐标内)
为什么要托管
Dependency Management
依赖冲突解决方案
短路优先
先声明先优先(路径长度相同情况)
jar包管理
常用命令
-v 版本
compile 编译
test
package
clean 清理target
install jar包安装到本地仓库
收藏
收藏
0 条评论
回复 删除
下一页