大家好,我是树哥. 最近和一个朋友聊天,他问了我 JVM 的三色标记算法.我脑袋一愣发现竟然完全不知道!于是我带着疑问去网上看了几天的资料,终于搞清楚啥事三色标记算法,它是用来干嘛的,以及它和 CMS 回收器和 G1 回收器的关系了.今天,就让树哥带着大家一起盘一盘它! 根可达算法 我们要进行垃圾回收,就需要弄明白哪些对象是需要回收的,哪些对象是不需要回收的.针对这个问题,其实业界已经有几种常见的解决方法了. 第一种是计数法,就是每个对象都有一个计数器,被引用了加一,移除引用减一.但这种方法比较…
为什么要使用HTTPS? HTTP采用明文传输,存在被监听.内容被篡改.身份被冒充的可能.为了保证安全性,需要对数据进行加密,这便有了HTTPS. 一步步分析HTTPS 1. 采用哪种加密方式加密数据? 空 对称加密 非对称加密 特点 唯一的密钥 一对公钥和私钥 优点 加密速度快 公钥公开,私钥保密,只要私钥不泄露就很安全 缺点 所有人都拿着同一密钥,一旦泄露,所有相关数据全部都暴露 速度慢 从上表的对比看出,使用非对称密钥显然更安全,但是加密速度慢.当数据量小的时候还好,数据大时显然存在不足.…
堆的核心概述 一个JVM实例只存在一个堆内存,堆也是java内存管理的核心区域Java堆区在jvm启动的时候被创建,其空间大小也就确定了.是jvm管理的最大一块内存空间.(堆内存的大小可以调节)<java虚拟机规范>规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的所有的线程共享java堆,在这里还可以划分线程私有的缓冲区<Java虚拟机规范>中对Java堆的描述是:所有对象实例以及数组都应该运行时分配在堆上数组和对象可能永远不会存储在栈上,因为栈帧中保存引用,…
本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述.图文并茂不生枯燥. 此PPT长达46页,全部展示篇幅过长,本文优先分享前十六页作为展示. 好东西当然要分享,转发+关注,然后私信回复“JVM46”即可免费获取的本PPT的领取方式. 导航 JVM体系结构概览 常用GC算法 复制 标记-清除 标记-压缩 Sun HotSpot 内存管理 新生代 旧生代 Sun HotSpot 垃圾回收器 一些术语 新生代可用GC…
来源:cnblogs.com/cyfonly/p/5807121.html 本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述. 好东西当然要分享,PPT已上传可供下载(关注Java技术栈微信公众号,在后台回复:JVM46,即可获取完整PPT,另外良心推荐阅读<深入理解Java虚拟机JVM高级特性与最佳实践> 导航 JVM体系结构概述 此PPT长达46页,全部展示篇幅过长,随意抽出9张作为展示. 关注Java技术栈微信公众号…
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/ 腾讯云专栏: https://cloud.tencent.com/developer/user/1148436/activities 虫洞区块链专栏:https://www.chongdongshequ.com/…
http://www.pythontutor.com/visualize.html今天去问开发一个Python浅拷贝的问题,开发给了一个神器,可以可视化代码在内存的执行过程,一看即懂,太NB了!~真是理解Python = 浅拷贝 深拷贝的神器.另外这个网站也支持其他语言:Java,JavaScript,C++,C,Ruby等.效果如动图: 输入代码后,点击Visualize Execution,就看到上图的界面了.左上为代码区:左下是控制区,4个按钮First.Back.Forward.Last…
前言 无论是从资源使用的角度,还是从发现内存泄漏问题的角度来看,在性能测试或者系统的稳定性测试中,内存的使用情况是一个很重要的监控点.为保证项目的质量前移,输入法内核测试小组的同学分配到了一个新的任务,就是在andriod平台上监测输入法内核 native 代码的内存使用情况. 为了完成这个任务,我们先将任务拆解成重要的几步: 1. 了解 andriod 平台的程序与内存 2. 了解 native代码在andriod平台上是如何进行内存分配的 3.  根据2步骤,方法调研,监测native代码内…
汇编代码看内存分配 (1). 程序运行时分为存储区域分为 存储区域 存储内容 extra 代码区 存放代码指令,包括除字符串常量的字面值 静态存储区 存放静态变量和全局变量 执行main之前就分配好了,系统回收 字符串常量区 存放字符串常量 执行main之前就分配好了,系统回收 栈区 局部变量,空间连续 边执行边分配,程序自己回收 堆区 malloc,new指令分配点空间(不连续) 边执行边分配,delete或free回收,否则要到程序结束后系统回收 (2). 字符串字面值,什么时候才会存放到字…
1.1 我如何决定使用那种整数类型? 如果需要大数 值(大于32, 767 或小于¡32, 767), 使用long 型.否则, 如果空间很重要(如有大数组或很多结构), 使用short 型.除此之外, 就使用int 型.如果严格定义的溢出特征很重要而负值无关紧要, 或者你希望在操作二进制位和字节时避免符号扩展的问题, 请使用对应的无符号类型.但是, 要注意在表达式中混用有符号和无符号值的情况. 尽管字符类型(尤其是无符号字符型) 可以当成“小” 整型使用, 但由于不可预知的符号扩展和代码增大有…