最新要闻
- 全球报道:光大证券:LPR还将继续保持平稳
- 环球精选!迪士尼回应游客排挤玲娜贝儿演员:将核实处理 网友吐槽饭圈行为
- 女子骑电动车导航跑上高架一路逆行:不知道不能上高架
- 高能少年团许魏洲抱杨紫是哪一期?高能少年团第二季为什么少了两期?
- 周杰为哪部奥特曼作品中配过音?周杰个人资料和简历
- 厨师罗拉是哪里人?厨师罗拉个人资料简介
- 每日精选:汽车脚垫天花板!男子直接在车内铺瓷砖:耐磨还方便打理
- 【世界速看料】小伙求加薪被拒将老板工程车弃河:松离合跳车、致损失27万
- 全球微资讯!女子点螺蛳粉外卖吃出整根蚯蚓 商家称其想吃霸王餐
- 多车企疯狂大降价 德国媒体:中国车市从没这么卷过
- 天天观天下!特斯拉高速行驶中AP突然关闭 方向盘助力诡异消失
- 天天速读:瓦斯琪尔的任务_瓦斯琪尔前置任务
- 全球速读:女子超市遇电动购物车:30分钟5块钱!网友:比公园划船划算
- 最资讯丨文章抹黑造谣?特斯拉索赔500万元被判胜诉!媒体不服上诉
- 焦点!一部车骑十年 回顾绿源液冷电机发展史:三年创下吉尼斯世界纪录
- 【世界速看料】大学生23万网购凯迪拉克二手车:开了俩月就冒烟 三大件全动过
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
世界快消息!jvm相关知识
【资料图】
JVM相关知识
- 内存结构
- 第一部分:
- 编译器(将.java源文件编译为.class文件)
- 类加载器
- 类加载实际上包括三部分:
- 懒加载
- 链接
- 懒初始化
- 类加载实际上包括三部分:
- 第二部分:
- 方法区(线程公有):方法区实际上是JVM的一种规范,它在HotSpot虚拟机(HSDB,Hotspot Debugger调试工具)中,在1.7之间存在于永久代中,在1.8中存在于元空间中,使用本地内存对这些信息进行存储
- 堆内存(线程公有):jvm调优的重点区域,jvm参数 -Xmx -Xms -Xmn .主要分为伊甸园、幸存区(from、to)、老年代. Minor GC、Mixed GC、Full GC
- 程序计数器(线程私有):程序计数器是唯一一个不存在内存溢出或内存泄漏的区域
- 虚拟机栈(线程私有):虚拟机栈采用了栈的思想,分为多个栈帧,每一个栈帧对应一个方法。
- 虚拟机栈中存在的内存泄漏有循环终止条件没有设计好,或者单个栈帧运行所需的空间足够大
- 本地方法栈(线程私有):本地方法栈对应本地方法接口,调用本地方法中的参数。
- 第三部分:执行引擎
- 解释器:将.class字节码文件解释为计算机运行的机器码
- 即时编译器(JIT):即时编译器会对热点代码的执行进行优化,并将优化后的存放在缓存中
- GC垃圾回收器:JVM调优的根本,Gc大大地解放了程序员自身对于内存的管理,但仍存在一些问题。
- 第四部分: 本地方法接口(操作系统、C++实现)
- 内存模型
- 内存模型实际上是jvm在多线程下和cpu之间交互的一种设计思想,主要体现为操作系统中的主内存和每个线程之间的高速缓冲区.第一次会从操作系统中读到高速缓存区中,下一次则直接从高速缓冲区中读取,但是进行写操作需要更新主内存后即时地更新(或删除)高速缓冲区的数据
- 类加载器、双亲委派机制
- 类加载器包括引导类加载器(根类加载器 / jre/lib包下)、扩展类加载器(/jre/lib/ext)、应用程序类加载器(/classpath)、自定义类加载器。
- 双亲委派模型指的是加载类时,向上抛出,逐个加载直到能够加载则停止
- 垃圾回收GC
- 3种垃圾回收算法
- 标记清除(速度快、会有内存碎片产生、现在的垃圾回收器已经弃用)
- 标记整理(速度慢、没有内存碎片产生)
- 标记复制(没有内存碎片产生、但是内存占用较大,且其中一份内存始终不存储数据)
- 3种垃圾回收器
- Parallel并行,注重吞吐量
- CMS(Concurrent Modify Sweep)垃圾回收(使用标记清除),该回收器已经被弃用,注重响应时间。
- G1垃圾回收器,同时注重了吞吐量和响应时间
- 把堆内存分为很多大小相等的内存空间(64份???),每一份都能作为伊甸园、幸存区(合并了from to)、老年代
- 3种垃圾回收算法
- 四种引用
- GC root、可达性分析、三色标记算法(标记过的、没有被标记的,正在进行分析标记的)
- 强引用:被强引用,即普通的new一个对象的引用在垃圾回收时,是不会被回收的。(包括直接饮用的其内部的成员变量)
- 软引用: 在第一次垃圾回收时,不会被回收,当再次垃圾回收的时候,就会被回收
- 弱引用: 在第一次进行垃圾回收的时候,就会被回收。
- 虚引用:在第一次进行垃圾回收的时候,就会被回收。
- 引用队列:对于软引用、弱引用和虚引用来说,其创建的中间引用对象都可以加入到引用队列中,然后开启一个单独的线程处理该引用队列。其中虚引用是必须强制使用引用队列的。
- ThreadLocal的内存泄漏和弱引用:
- ThreadLocal中的key被设计为弱引用,因此其key可以被进行垃圾回收,但是回收之后,我们就存在无法根据key去手动remove其对应的value,而value却是强引用,此时就存在内存泄漏问题。
- 其解决思路是:
- 1.在使用完毕后,及时的手动移除value
- 2.将弱引用加入到引用队列中,其中存储的是ThreadLocalMap中的Entry对象,通过将Entry对象置为null,实现key和value都被回收。
- 3.Jdk9中对于2的实现原理进行了优化和封装,使用Cleaner对象(运行时是一个守护线程)
- GC root、可达性分析、三色标记算法(标记过的、没有被标记的,正在进行分析标记的)
- finalize方法剖析
- finalize
- 它是 Object 中的一个方法,如果子类重写它,垃圾回收时此方法会被调用,可以在其中进行资源释放和清理工作.
- 但是将资源释放和清理放在 finalize 方法中非常不好,非常影响性能,严重时甚至会引起 OOM,从 Java9 开始就被标注为 @Deprecated,不建议被使用了
- finalize 原理
- 对 finalize 方法进行处理的核心逻辑位于 java.lang.ref.Finalizer 类中,它包含了名为 unfinalized 的静态变量(双向链表结构),Finalizer 也可被视为另一种引用对象(地位与软、弱、虚相当,只是不对外,无法直接使用)
- 当重写了 finalize 方法的对象,在构造方法调用之时,JVM 都会将其包装成一个 Finalizer 对象,并加入 unfinalized 链表中
- Finalizer 类中还有另一个重要的静态变量,即 ReferenceQueue 引用队列,刚开始它是空的。当狗对象可以被当作垃圾回收时,就会把这些狗对象对应的 Finalizer 对象加入此引用队列
- 但此时 Dog 对象还没法被立刻回收,因为 unfinalized -> Finalizer 这一引用链还在引用它嘛,为的是【先别着急回收啊,等我调完 finalize 方法,再回收】
- FinalizerThread 线程会从 ReferenceQueue 中逐一取出每个 Finalizer 对象,把它们从链表断开并真正调用 finallize 方法
- 由于整个 Finalizer 对象已经从 unfinalized 链表中断开,这样就会在下次 gc 时就被回收了
- finalize 缺点
- 无法保证资源释放:FinalizerThread 是守护线程,代码很有可能没来得及执行完,线程就结束了
- 无法判断是否发生错误:执行 finalize 方法时,会吞掉任意异常(Throwable)
- 内存释放不及时:重写了 finalize 方法的对象在第一次被 gc 时,并不能及时释放它占用的内存,因为要等着 FinalizerThread 调用完 finalize,把它从 unfinalized 队列移除后,第二次 gc 时才能真正释放内存
- 有的文章提到【Finalizer 线程会和我们的主线程进行竞争,不过由于它的优先级较低,获取到的CPU时间较少,因此它永远也赶不上主线程的步伐】这个显然是错误的,FinalizerThread 的优先级较普通线程更高,原因应该是 finalize 串行执行慢等原因综合导致
- finalize
- 内存溢出的几种情况
- 典型情况
- 误用线程池导致的内存溢出
- 使用了不推荐的线程池创建
- 固定线程数的线程池(Executors.newFixedThreadPool,其中的工作队列是近似没有上限的(Integer的最大值))
- 带有缓存的线程池(Executors.newCachedThreadPool,其中的核心线程数为0,全部都是救济线程(Integer的最大值)
- 单次查询数据量太大(禁止调用查询全表的数据接口)导致的内存溢出,进行分页查询(limit)
- 动态生成类导致的内存溢出(动态生成的类使用了自定义的类加载器,其中的静态成员变量是强引用,不能被垃圾回收,应该将静态变量修改为成员变量)
- 使用了不推荐的线程池创建
- 误用线程池导致的内存溢出
- 典型情况
关键词:
世界快消息!jvm相关知识
全球观焦点:易基因:DNA甲基化研究的3大前期探索性实验思路|干货系列
全球报道:光大证券:LPR还将继续保持平稳
环球精选!迪士尼回应游客排挤玲娜贝儿演员:将核实处理 网友吐槽饭圈行为
女子骑电动车导航跑上高架一路逆行:不知道不能上高架
sd卡根目录是什么意思?sd卡根目录在哪里打开?
惠普的驱动程序在哪个文件夹?惠普sd驱动怎么下载?
高能少年团许魏洲抱杨紫是哪一期?高能少年团第二季为什么少了两期?
周杰为哪部奥特曼作品中配过音?周杰个人资料和简历
厨师罗拉是哪里人?厨师罗拉个人资料简介
每日精选:汽车脚垫天花板!男子直接在车内铺瓷砖:耐磨还方便打理
【世界速看料】小伙求加薪被拒将老板工程车弃河:松离合跳车、致损失27万
全球微资讯!女子点螺蛳粉外卖吃出整根蚯蚓 商家称其想吃霸王餐
多车企疯狂大降价 德国媒体:中国车市从没这么卷过
天天观天下!特斯拉高速行驶中AP突然关闭 方向盘助力诡异消失
最新资讯:ChatGPT4高分通过数据库系统工程师(DBA)认证
天天速读:瓦斯琪尔的任务_瓦斯琪尔前置任务
全球速读:女子超市遇电动购物车:30分钟5块钱!网友:比公园划船划算
最资讯丨文章抹黑造谣?特斯拉索赔500万元被判胜诉!媒体不服上诉
焦点!一部车骑十年 回顾绿源液冷电机发展史:三年创下吉尼斯世界纪录
交易履约之产品中心实践
天天实时:Spring Boot 如果防护 XSS + SQL 注入攻击 ?一文带你搞定!
【世界热闻】Python工具箱系列(二十七)
python高级用法之命名元组namedtuple
【世界速看料】大学生23万网购凯迪拉克二手车:开了俩月就冒烟 三大件全动过
499元 小米真无线降噪耳机3星战定制款发布:风暴兵标志太酷炫
每日快讯!ChatGPT推荐中国最宜居城市 成都第三长沙第一 认可吗
焦点!斗鱼回应36岁女子请假保胎被辞:并非针对孕妇 不服可仲裁
2.8K 120Hz华硕好屏、升级13代酷睿!灵耀14 2023旗舰版图赏
支持向量机SVM
天天微资讯!【C 数据结构】循环队列
【世界快播报】孙子膑脚全文_孙子膑脚
全球今热点:GPT-4刚发布就有手机APP接入 上传照片视频一键解读
迪士尼被曝大幅裁员!公司称至少有4000名员工将在4月份失业
当前滚动:239元 荣耀手环7 NFC版开售:新增公交/门禁功能
世界要闻:2022年超越德国成全球第二 中国新能源汽车出口继续高增长
熊孩子4S店不小心启动车辆 展车冲出撞击多辆新车
天天日报丨读C#代码整洁之道笔记01_C#的编码标准和原则
热资讯!【新华解读】降准落地对债市是否意味着利好出尽?
电动车价格还得降 “白色石油”碳酸锂价格三个月大跌40% 专家称重大利好
全球热推荐:中长视频版抖音!抖音官方全新APP青桃上线:对标B站
机构:中国人幸福感全球最高 韩国人排名全球垫底 日美紧随其后
当前看点!TVB演员30秒被扇21个耳光让人惊叹 网友点赞:吐槽内娱明星不敬业
【环球新视野】债市观察:海外风险事件扰动有限 期现券难脱震荡格局
美联储联手全球主要央行加强美元流动性供给
天天热资讯!业内人士:超预期“降准”呵护流动性 提振金属市场需求复苏
世界热点!市场避险情绪高涨 金油比价上破26桶/盎司
我眼中的秋天600字的作文_我眼中的秋天600字
美国银行接连倒闭:国际黄金价格逼近2000美元大关 全球疯抢
当前热议!又一个国产ChatGPT 李开复再创业:打造世界级AI公司
资讯推荐:读Java性能权威指南(第2版)笔记22_ 操作系统工具和Java监控工具
天天快资讯:护眼电视都是骗人的?真相揭秘
考研周记-week4
环球关注:[MRCTF2020]Ezpop
【OpenGL ES】绘制魔方
hystrix的熔断降级
过去几亿年 月亮变“瘦了”约50米:地球呢?
男子网恋1年多 女友竟是好友老婆:转账8万多要不回来
为什么迅雷下载不了文件_为什么迅雷下载不了
环球热讯:Masa Framework源码解读-03 MasaMinimalApi设计
世界微资讯!Vue——initEvents【六】
世界看热讯:人类身体为什么不长毛?竟然是因为这
手机的天线去哪了?原来就在眼皮底下
Web API接口返回实现类集合的姿势了解
【单元测试】Junit 4(七)--junit4 TestRunnner
微头条丨皮鞋果冻制作方法_皮鞋果冻
日月潭蓄水率创新低:九蛙叠像全露出 还有“神秘黑洞”
【模型部署】在C++和Python中配置OpenVINO2022环境
谈谈 Vue shallowRef 和 shallowReactive
快报:刷题疑惑2
前端加载超大图片(100M以上)实现秒开解决方案
快讯:数据结构-图
连上半个月夜班 27岁小伙一觉醒来懵了:脸肿得像包子
环球今亮点!微信新增“视频号”入口?腾讯张军否认网传截图:假的
数据挖掘第四周作业
conda环境下使用nvcc -V报错nvcc: command not found的一种解决方法
环球快资讯:【论文笔记】SegNet
OpenAI CEO承认害怕ChatGPT:AI会取代许多工作
前端设计模式——原型模式
全球短讯!69.处理类型
环球快看:车主花32万买到全损事故车:获退1赔3、到手97.2万
群晖DS423入门级四盘位NAS发布:居然支持Docker了
今头条!小米真无线降噪耳机3《星球大战》联名版来了!明早10点正式公布
每日观察!家长发又有作业了被老师踢出群聊 还被电话教育:网友纷纷感同身受
当前报道:男子吐槽22元吃面 面量仅盖住碗底 店方:这是网红大碗
当前动态:一定的提问方法与一定的什么是控制访谈的两个重要因素_一定的与一定的是控制访谈的两个重要因素
环球看热讯:MySQL如何正确查询字符串长度
每日速看!C. Sequence Master
2023年安卓之光!小米13 Ultra最新进展:还在打磨MIUI 14系统
焦点滚动:AMD Zen4低功耗锐龙7 7840U首次现身:28W就灭掉45W Zen3+
世界视点!南航重推“随心飞”产品:不限年龄无限飞行 服务器被挤爆
全球微资讯!看看这份2023年MySQL终级面试题,提升你的内力,给你面试助力
环球热点!推荐机制不再保密:马斯克宣布月底开放Twitter推荐算法
P图侮辱女性 苏州大学凌晨通报:开除赵某某学籍
.NET中的winform、wpf、winui和maui你都知道吗?
1254MB海量缓存+96核心!AMD霄龙9004X让对手彻底绝望
【全球聚看点】“密集恐惧症”真的是种病?看完也许会治好
每日快报!群晖DSM 7.2 Beta发布:Docker更名 相册大升级
焦点快播:诸葛亮的改动再度提上日程,诸葛亮真的需要这样调整吗?
今日热闻!独特的散热设计与人机交互触控屏!微星海皇戟X2主机评测:顶级游戏性能