
获得徽章 9
- #每日一题# 新生代 老生代GC
新生代 用的是 复制算法 Scavenge 牺牲空间换取时间的算法 就是他会开辟两个空间 From 和 To 这两个空间必须有一个是空闲的 一个是使用的 新分配的对象会被放在From 空间 From空间被占满的时候, 算法会检查 From 空间中存活的对象并复制到 To 空间中,如果有失活的对象就会销毁。当复制完成后将 From 空间和 To 空间互换,这样 GC 就结束了。
老生代 如果新生代对象已经经历过一次 复制算法 那么对象会从新生代空间转到 老生代空间 老生代之前的算法是 标记清除 和 引用计数:就是看对象是否还有其他引用指向它,如果没有指向该对象的引用,则该对象会被视为垃圾并被垃圾回收器回收 但是 可能会出现对象的相互引用 导致循环引用 内存泄露 所以为了防止这种情况 2012之后就放弃了这种方式 后面用了 标记清除 :和 标记整理`
标记清除:标记和清除两个阶段,在标记阶段会遍历堆中的所有对象,然后标记活着的对象,在清除阶段中,会将死亡的对象进行清除。展开评论点赞 - 10点赞
- #每日一题# HTTP 1.1 相比 HTTP 1.0 解决了什么问题?
1、增加了长链接 : HTTP 1.0 每一次请求都伴随着一次三次握手的过程,并且是串行请求,增加了不必要的开销,HTTP1.1 则增加了长链接的通讯方式,减少了性能开销
2、增加了管道:HTTP1.0 只有串行发送,没有管道的概念,HTTP1.1 增加了管道的概念,使得在同一个TCP链接中可以同时发送多个请求
3、增加了断点续传:HTTP1.1 增加了range 字段,用来指定数据字节的位置,开启了断点续传的时代
4、增加了缓存处理:HTTP1.1引入了更多的缓存策略,入 ETag、if-modified-since,if-none-match等更多可供选择的缓存头来控制缓存策略
5、增加了错误状态码响应:新增了24个错误状态码响应 如410 表明请求的资源已经永久的从服务器上删除。
。。。等等展开评论点赞