当前位置: 首页 > news >正文

推荐邵阳网站建设学it需要什么学历基础

推荐邵阳网站建设,学it需要什么学历基础,全国猪价今日涨跌表,在线书店网站怎么做目录 1、JVM 的体系结构 2、双亲委派机制 3、堆内存调优 4、关于GC垃圾回收机制 4.1 GC中的复制算法 4.2 GC中的标记清除算法 1、JVM 的体系结构 "堆"中存在垃圾而"栈"中不存在垃圾的原因: 堆(Heap) 用途&#xff…

目录

1、JVM 的体系结构

2、双亲委派机制

3、堆内存调优

4、关于GC垃圾回收机制

4.1 GC中的复制算法

4.2 GC中的标记清除算法


1、JVM 的体系结构

"堆"中存在垃圾而"栈"中不存在垃圾的原因:

堆(Heap)

  1. 用途:堆主要用于存储对象实例和数组。在Java中,几乎所有通过new关键字创建的对象都会存储在堆内存中。
  2. 内存分配与释放堆内存的分配和释放由JVM的垃圾回收器(Garbage Collector, GC)自动管理。当对象不再被引用时,它们被认为是垃圾,但并不会立即被释放。相反,垃圾回收器会在合适的时机进行垃圾回收,以释放这些不再使用的内存空间。
  3. 垃圾存在的原因:由于垃圾回收器并不是实时运行的,且对象的生命周期可能跨越多个垃圾回收周期,因此在堆内存中可能会存在已经不被使用但仍未被回收的垃圾对象

栈(Stack)

  1. 用途:栈主要用于存储局部变量、方法调用信息和对象的引用变量(但对象本身存储在堆中)。每个线程都有自己独立的栈空间,用于存储该线程执行过程中的局部变量和方法调用信息。
  2. 内存分配与释放栈内存的分配和释放是自动的,且与方法的调用和返回紧密相关。每当一个方法被调用时,JVM会在栈上为该方法创建一个新的栈帧(Stack Frame),用于存储局部变量等信息。当方法执行完毕后,其对应的栈帧会自动从栈中弹出并销毁,局部变量占用的内存也会随之释放。
  3. 不存在垃圾的原因:由于栈内存的分配和释放都是自动的,且与方法的调用和返回紧密相关,因此栈内存中的局部变量和方法调用信息在不再需要时会自动被释放,不会出现像堆内存中那样的垃圾对象。此外,栈内存的生命周期与线程相同,当线程结束时,其栈内存也会被自动释放


2、双亲委派机制

一开始先从Java启动类加载器中寻找相关类,若没有,则在拓展类加载器中寻找,最后才会在当前应用类加载器中寻找

例:如图所示

这里创建了一个java.lang的包,定义了String以及toString,与Java自带包冲突;

说明了一开始是由Java启动类加载器(Boot)进行类的加载,发现具有相同重复的类,则抛出异常,主要是为了保证安全性,防止恶意的擅自更改善意的代码

报错信息:


3、堆内存调优

public static void main(String[] args) {//jvm试图使用的最大内存long max = Runtime.getRuntime().maxMemory();//jvm总内存long total = Runtime.getRuntime().totalMemory();System.out.println("max="+max+"字节\t"+(max/(double)1024/1024)+"MB");System.out.println("total="+total+"字节\t"+(total/(double)1024/1024)+"MB");}

这里进行输出JVM中默认配置下的相关内存大小:

存在问题:

若发生OOM内存溢出,默认的堆配置内存可能行不通,可能需要自己进行配置

点击编辑配置        --->        修改选项        --->        添加VM选项

这里进行输入的配置中,其中“1024m”表示内存的大小、“PrintGCDetails”表示打印相关信息(更多的参数去百度),可以自行根据情况调节,以尽量控制不会出现OOM内存溢出

输出结果:

可见,通过配置,堆中所分配的内存大小发生了改变


4、关于GC垃圾回收机制

GC的作用区域在 “堆内存区” 以及 “方法区”

4.1 GC中的复制算法

内部具体伪动态图:

由于谁空谁为To区,Eden以及From中的对象都会往To区集合;当集合完毕之后,原来的From区为空,所以变为了To区,与原来的To区进行了“身份交换”;而后续存活下来的对象则顺利进入“养老区”

优点:没有内存的碎片,即 “要走一块走,要留一块留”

缺点:浪费了内存空间,即 “To幸存区” 与 “From幸存区” 必须空一块

总结

复制算法最佳最佳使用场景:对象存活度较低的时候,即在新生区进行使用

4.2 GC中的标记清除算法

优点:不需要占用额外的空间

缺点:经过两次扫描,严重浪费空间,因为会产生内存碎片

对于标记清除算法,对应的优化算法还有 “标记压缩算法” 、“标记清除压缩算法”,但都存在利与弊,没有最优,只有最合适

http://www.hkea.cn/news/739899/

相关文章:

  • 专业b2c电商网站制作网站推广要点
  • 现在的网站用什么程序做百度云官网登录入口
  • vs做网站怎样加数据库新闻小学生摘抄
  • 广州做网站mxszpt小说排行榜
  • 有什么网站是python做的网站营销策划公司
  • 长春有什么好的网站制作公司链接购买
  • 毕设网站佛山网站建设十年乐云seo
  • 北京做网站建设的公司哪家好手机怎么创建网站
  • winforms做网站注册百度账号
  • 玉泉路网站建设营销培训课程有哪些
  • 渭南做网站费用搜索引擎排名优化是什么意思
  • 做网站开发需要学什么软件微信公众平台开发
  • 网站整体营销方案网络营销的特点是什么?
  • 国内知名的网站建设公司有哪些百度指数专业版app
  • 画画外包网站如何推广一个网站
  • 互联网公司响应式网站深圳google推广
  • 深圳网站设计哪好什么推广平台比较好
  • 打开英文网站字体不对教程seo推广排名网站
  • 昭通市建设局网站太原百度关键词优化
  • 个人建网站允许吗seo职位要求
  • 环保网站设计网络营销优化推广
  • 网页设计网站制作公司冯耀宗seo视频教程
  • 怎么用路由器做网站百度指数平台官网
  • 济南做网站互联网公司有哪些seo是什么公司
  • 辛集seo网站优化价格许昌网站seo
  • 网站建设后期维护百度快速收录技术
  • 网站建设中的推广工作seo学校培训
  • 上海专业网站建设网百度搜索推广开户
  • 做学校网站素材图片合肥seo代理商
  • 真题真做报名网站淘宝搜索关键词排名