【新要闻】Jvm内存模型剖析优化-JVM(四)
上篇文章代码实例详解如何自定义双亲委派,主要实现ClassLoader,有两个方法,一个直接loadClass用父类的,如果想在破坏,则需要重写loadClass,一个findClass必须要重新,因为父类是空的,也是用defindClass的方法,传入加载类的二进制数据和大小。
一、tomcat如何加载包
Tomcat会部署多个不同的应用程序,而不同的应用程序应该加载自己的war包,不能和双亲委派一样,这样就会导致不同应用程序没有隔离性,于是tomcat的核心打破双亲委派。
(资料图)
我们上篇文章的代码其实已经实现了tomcat设计,tomcat会优先加载自定义的类库,而核心类库和tomcat自己的类库肯定不同的程序加载同一个,继续向上双亲委派。
于是我们在main方法再加几行代码,于是就可以看到两个相同的名称但是都可以加载成功并且打印出来。为什么jsp不需要重启tomcat也可以生效呢,jsp就是一个sevlet类,会生成自己的加载器。
二、Jvm内存模型
Java堆、方法区(元空间)、栈(线程)、本地方法栈、程序计数器。
栈这块放的是局部变量,官网叫虚拟机栈,又叫线程栈,当程序在修改数据的时候,并不是直接修改这个数据,而是java虚拟机会建立一个局部内存,放当前线程修改的值。
找到我们之前使用的类,用命令进行反汇编
Javap -c Main230629.class > Main230629.txt
针对我们jvm执行的是.classe二进制文件,其实执行的就是我们如图的txt里面的代码。
线程栈有哪些空间呢?
局部变量表,操作数栈,动态链接,方法出口。
那这些值是什么意思呢?
iconst_1:将int类型常量1压入 操作数栈
istore_1:将int类型的值存入 局部变量
...
前面四行代码对应的就是java赋值操作
Int a = 1 和 int b =2
iload_1:从局部变量1 装载int类型的值
Iadd:执行int类型加法
istore_3:给局部变量3分配 内存空间
iload_3:从局部变量3 装载int类型值
Ireturm:把值返回到主线程
程序计数器也是每个线程独有的内存空间,看图里每行都有一个数字,这个数字就是这行代码对应的位置,就是程序计数器的值。
方法区(元空间)放的是:常量+静态变量+类的信息,而内存地址放在堆。
每个线程都独有:本地方法栈,栈和程序计数器。不会共享
方法区和堆则是共享的。
堆无非就是年轻代和老年代。正常年轻代占三分之一,老年代占三分之二。Eden和survivor区,Eden占十分之八,s0和s1分别占十分之一。
正常情况对象都在Eden区。
第一次gc:
现在有一个系统,不断产生对象都放在Eden,这时候放满就会有YongGc,也就是minor GC,后台有现场进行minorGc。
第二次gc:
当找到非垃圾对象,这时候不会gc,则会赋值到survivor区域的s0。剩下在Eden区域的垃圾对象,直接干掉。
这时候这两个对象经过minorGc分代年龄加1,并且放入s0。
第三次gc:
这时候会把s0和Eden的对相亲全部干掉,如果这时候还有非垃圾对象存在,这时候会赋值到S1里,并且分代年龄+1。(会在s0和s1挪来挪去)
当这个对象分代年龄随着增加到了15的时候,于是到了来年代。
(老年代会有什么数据,静态变量,静态对象,缓存,缓存对象,spring容器里的对象)
关键词:
推荐阅读
月壤形成的主要原因 月壤与土壤有什么区别
月壤形成的主要原因月壤形成过程没有生物活动参与,没有有机质,还极度缺水干燥;组成月壤的矿物粉末基本是由陨石撞击破砰形成,因此,粉末 【详细】
域名抢注是是什么意思?投资角度来看什么域名好?
域名抢注是是什么意思域名抢注是通过抢先注册的方式获得互联网删除的域名的使用权。域名是由点分隔的一串数字,用于标记一台计算机或一组计 【详细】
捷达保养费用是多少?捷达是哪个国家的品牌?
捷达保养费用是多少?全新捷达的保修期为2年或6万公里,以先到者为准,新车可享受一次免费保养,首次免费保养在5000-7500km或1年内进行。如 【详细】
天然气泄露会造成爆炸吗?天然气泄漏怎么办?
天然气泄露会造成爆炸吗?家里用的天然气如果泄露是会发生爆炸的。当空气中含有混合天然气时,在与火源接触的一系列爆炸危险中,就会发生爆 【详细】
四部门明确App收集个人信息范围 个人信息保护范围判断标准
四部门明确App收集个人信息范围近日,国家互联网信息办公室、工业和信息化部、公安部、国家市场监督管理总局联合印发《常见类型移动互联网 【详细】
相关新闻
- 【新要闻】Jvm内存模型剖析优化-JVM(四)
- 秀逗是什么东西_“秀逗”是什么意思
- 世界热文:晴雅集公主为什么生蛇 晴雅集电影简介
- 全球即时:swim现在分词是什么(swim(现在分词))
- 环球快报:分子有理化法(分子有理化公式)
- 误关电闸让20多年科研成果毁于一旦,美清洁工被索赔100万美元
- 全球滚动:电商中心驱动 秦安县农特产品“乘网出村”
- 科学家找到人类抗禽流感基因_全球微资讯
- 华为自研ArkTS语言和Stage模型,助力鸿蒙系统4.0再次腾飞|今日热门
- 当前要闻:灵芝煲什么汤好(灵芝可以和什么一起煲汤好)
- 大爆冷!3-4!孙颖莎丢冠,日本选手夺冠,疯狂庆祝,史诗级胜利_环球播资讯
- 1小时接诊3例!已进入高发季!海南人要警惕丨海上夜闻·视听汇 资讯
- 载有中国乘客大巴法国遇袭!最新进展-全球快消息
- 全球信息:沪苏湖铁路有新进展 全线牵引变电所首台主变安装就位
- 全球资讯:「甘快看」甘肃举行通信保障应急演练
- 美的集团打造东南亚地区最大空调生产基地
- MIUI“剃刀计划”并未结束_天天时快讯
- 全球焦点!剑南春酒股票行情_剑南春股票行情
- 中泰证券:暑运旺季开启 航空迎来量价齐升
- 【天天速看料】欧宗荣“分家产”后 正荣服务再现人事变动