写点什么

作业一

用户头像
Kiroro
关注
发布于: 2020 年 08 月 05 日
1. 标记回收对象-对象已死?

Java堆是JVM主要的内存管理区域,里面存放着大量的对象实例和数组。在垃圾回收算法和垃圾收集器之前,首先要做的就是判断哪些对象已经“死去”,需要进行回收即不可能再被任何途径使用的对象。

1.1 引用计数法

引用计数法是这样:给对象中添加一个引用计数器,每当有一个地方使用它时,计数器值就加1。当引用失效时,计数器就减1。任何时刻计数器为0的对象就是不可能再被使用的。

1.2 可达性分析

可达性分析的基本思路:通过一系列称为"GC Roots"的对象作为起点,从这些节点开始向下搜索,如果从GC Roots到一个对象不可达


强引用(StrongReference)

如果一个对象具有强引用,那垃圾回收器绝不会回收它。

软引用(SoftReference)

内存空间充足时,垃圾回收器不会回收

内存空间不足时,就会尝试回收这些对象。

弱引用(WeakReference)

相比较软引用,只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它锁管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。

虚引用(PhantomReference)

虚引用顾名思义,就是形同虚设。与其他几种引用都不同,虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。

垃圾收集算法

标记-清除算法分为“标记”和“清除”两个阶段

标记:首先标记出所有需要回收的对象

清除:在标记完成后统一回收所有被标记的对象

复制算法:

首先将可用内存分为大小相等的两块,每次只使用其中的一块。

当这一块的内存用完了,就将还存活的对象连续复制到另一块上面,然后把使用过的内存空间一次清理掉

标记-整理算法

标记-整理算法分为“标记”和“整理”两个阶段:

标记:首先标记出所有需要回收的对象

整理:让所有的存活的对象都向一端移动,然后直接清除掉边界以外的内存


秒杀系统-挑战和问题

 1.突增的服务器及网络需求

2.业务高并发,服务负载重

 3.业务耦合度高,引起系统“雪崩”

思路:

  1. 将请求拦截在系统上游,降低下游压力

  2. 充分利用缓存

  3. 消息中间件

  4. 页面静态化

  5. 限流



用户头像

Kiroro

关注

还未添加个人签名 2020.05.30 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
作业请添加”极客大学架构师训练营“标签,便于分类查找~
2020 年 08 月 05 日 14:09
回复
没有更多了
作业一