#### 创建阶段
> 为对象分配存储空间
> 构造对象
> 从超类到子类对static成员进行初始化
> 递归调用超类的构造方法
> 调用子类的构造方法
#### 应用阶段
> 当对象被创建,并分配给变量赋值,状态就切换到应用阶段
> 这一阶段至少有一个强引用(new),或者显示的使用软引用、 弱引用、虚引用
> 软引用(内存空间足,不会 回收,内存不足,就会回收)
> 弱引用(不管有没有空间,都会去回收,只是不一定能立刻发现它)
> 虚引用(任何时候都会去回收它)
#### 不可见阶段
> 程序中找不到对象的任何强引用,比如已经超出了对象的作用域。
#### 不可达阶段
> 垃圾回收器发现不可达
#### 收集阶段
> 垃圾回收器准备好要对该对象的内存空间器进行分配
#### 终结阶段
> 当对象执行完finalize后仍然不可达,该对象进入终结阶段,等待垃圾回收空间
#### 对象空间重新分配阶段
> 垃圾回收时,这个对象就会彻底消失
- 虚拟机
- JVM内存结构
- JVM调优手段
- java对象生命周期
- 垃圾回收判断对象死亡
- 垃圾回收算法
- 垃圾收集器
- JAVA基础知识
- java事件机制
- java反射机制
- jvm创建对象
- java异常
- finally语句一定会执行吗?
- 集合类介绍
- ArrayList
- LinkedList
- HashMap
- ConcurrentHashMap
- 多线程
- 为什么要使用线程池
- 线程死锁
- 死锁检测和解除
- jstack
- jconsole
- 死锁预防
- 常见线程池
- 线程池参数
- 工作队列介绍
- 拒绝策略
- ThreadLocal
- CAS
- ReentrantLock
- AQS
- CountDownLatch
- Spring
- spring中bean的作用域
- REDIS
- redis数据结构
- redis hash实现
- redis rehash与hashmap扩容的区别
- Redis使用场景
- Redis为何这么快
- redis连接数不足导致错误
- 分布式
- 分布式事务
- ACID
- CAP
- BASE
- 事务隔离性
- 一致性哈希算法
- 负载均衡算法
- Hystrix 信号量和线程池隔离的差异
- Spring Cloud
- eureka
- MYSQL
- mysql优化经验
- undo redo binlog
- web
- http协议
- http和https区别
- Cookie和session
- TCP三次握手、4次挥手
- TCP的time_wait和close_wait
- 算法问题
- 编辑距离算法
- MQ
- RabbitMq
- Kafka
- 安装教程
- Win ELK安装