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

网站建设和维护费用朝阳seo推广

网站建设和维护费用,朝阳seo推广,通化网站建设公司,会员管理系统功能介绍4、运行时数据区 4.1、运行时数据区介绍 运行时数据区也就是JVM在运⾏时产生的数据存放的区域,这块区域就是JVM的内存区域,也称为JVM的内存模型——JMM 堆空间(线程共享):存放new出来的对象 元空间(线程共…

4、运行时数据区

4.1、运行时数据区介绍

在这里插入图片描述

运行时数据区也就是JVM在运⾏时产生的数据存放的区域,这块区域就是JVM的内存区域,也称为JVM的内存模型——JMM

  • 堆空间(线程共享):存放new出来的对象

  • 元空间(线程共享):存放类元信息、类的模版、常量池、静态部分

  • 线程栈(线程独享):⽅法的栈帧

  • 本地⽅法区(线程独享):本地⽅法产⽣的数据

  • 程序计数器(线程独享):配合执⾏引擎来执⾏指令

4.2、程序在执行时运行时数据区中的内存变化

⾸先,在程序的.class目录内执行如下命令,查看程序具体的汇编指令

javap -c JVMAnalyze

得到结果:

Compiled from "JVMAnalyze.java"
public class com.qf.jvm.JVMAnalyze {public com.qf.jvm.JVMAnalyze();Code:0: aload_01: invokespecial #1                  // Method java/lang/Object."<init>":()V4: returnpublic int add();Code:0: bipush        102: istore_13: bipush        205: istore_26: iload_17: iload_28: iadd9: bipush        1011: imul12: istore_313: iload_314: ireturnpublic static void main(java.lang.String[]);Code:0: new           #2                  // class com/qf/jvm/JVMAnalyze3: dup4: invokespecial #3                  // Method "<init>":()V7: astore_18: aload_19: invokevirtual #4                  // Method add:()I12: istore_213: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;16: iload_217: invokevirtual #6                  // Method java/io/PrintStream.println:(I)V20: return
}

通过指令,JMM内存发⽣了如下变化:

在这里插入图片描述

  • 线程栈:执行⼀个方法就会在线程栈中创建⼀个栈帧。

  • 栈帧包含如下四个内容:

    • 局部变量表:存放方法中的局部变量
    • 操作数栈:用来存放方法中要操作的数据
    • 动态链接:存放方法名和方法内容的映射关系,通过方法名找到方法内容
    • 方法出口:记录方法执行完后调用此方法的位置。

5、对象的创建流程

5.1、对象创建流程

在这里插入图片描述

5.2、类加载校验

校验该类是否已被加载。主要是检查常量池中是否存在该类的类元信息。如果没有,则需要进⾏加载。

5.3、分配内存

为对象分配内存。具体的分配策略如下:

  • Bump the Pointer(指针碰撞):如果内存空间的分配是绝对规整的,则JVM记录当前剩余内存的指针,在已用内存分配

  • Free List(空闲列表):如果内存空间的分配不规整,那么JVM会维护⼀个可用内存空间的列表用于分配。

对象并发分配存在的问题:

  • Compare And Swap:自旋分配,如果并发分配失败则重试分配之后的地址

  • Thread Local Allocation Buffer(TLAB):本地线程分配缓冲,JVM为每个线程分配⼀块空间,每个线程在自己的空间中创建对象(jdk8默认使⽤,之前版本需要通过-XX:+UseTLAB开启)

5.4、设置初值

根据数据类型,为对象空间赋初始化值。

5.5、设置对象头

为对象设置对象头信息,对象头信息包含以下内容:类元信息、对象哈希码、对象年龄、锁状态标志等。

  • 对象头中的Mark Work 字段(32位)

在这里插入图片描述

  • 对象头中的类型指针(Klass Pointer)

类型指针用于指向元空间当前类的类元信息。比如调用类中的方法,通过类型指针找到元空间中的该类,再找到相应的方法。

开启指针压缩后,类型指针只用4个字节存储,否则需要8个字节存储

  • 指针压缩

过大的对象地址,会占⽤更大的带宽和增加GC的压力。

对象中指向其他对象所使⽤的指针:8字节被压缩成4字节。 最早的机器是32位,最大支持内存 2的32次方=4G。现在是64位,2的64次⽅可以表示N个T的内存。内存32G即等于2的35次方。如果内存是32G的话,用35位表示内存地址,这样过于浪费。如果把35位的数据,根据算法,压缩成32位的数据(也就是4个字节)。在保存时用4个字节,再使用时使用8个字节。之前用35位保存内存地址,就可以用32位保存。这样8个字节的对象,实际上使用32位来保存,这样64位就能表示2个对象。

如果内存⼤于32G,指针压缩会失效,会强制使用64位来表示对象地址。因此jvm堆内存最好不要大于32G。

Jdk1.6之后默认开启指针压缩,可通过配置jvm参数关闭指针要锁 -XX:-UseCompressedOops

示例代码:

package com.qf.jvm;import org.openjdk.jol.info.ClassLayout;import java.lang.String;/*** 对象指针压缩* @author Thor* @公众号 Java架构栈*/
public class ObjectLengthAnalyze {public static void main(String[] args) {ClassLayout classLayout = ClassLayout.parseInstance(new A());System.out.println(classLayout.toPrintable());}static class A{int num;String name;}
}

关闭指针压缩:

在这里插入图片描述

开启指针压缩:

在这里插入图片描述

5.6、执行init方法

为对象中的属性赋值和执⾏构造方法。

本文章参考B站 千锋教育JVM全套教程(含jvm调优、jvm虚拟机、jvm面试题、jvm源码详解)系统玩转java虚拟机全程干货无废话,仅供个人学习使用,部分内容为本人自己见解,与千锋教育无关。


文章转载自:
http://interelectrode.c7510.cn
http://congelative.c7510.cn
http://xylonite.c7510.cn
http://overentreat.c7510.cn
http://flysheet.c7510.cn
http://confrontationist.c7510.cn
http://phil.c7510.cn
http://lapboard.c7510.cn
http://pythagoric.c7510.cn
http://cangue.c7510.cn
http://vsf.c7510.cn
http://freckling.c7510.cn
http://fordo.c7510.cn
http://stegosaurus.c7510.cn
http://magistracy.c7510.cn
http://bloodwort.c7510.cn
http://tectonization.c7510.cn
http://neglect.c7510.cn
http://uproarious.c7510.cn
http://pirozhki.c7510.cn
http://garrulity.c7510.cn
http://submediant.c7510.cn
http://fluidonics.c7510.cn
http://asthenosphere.c7510.cn
http://powerhouse.c7510.cn
http://thermomotor.c7510.cn
http://sacculus.c7510.cn
http://covariation.c7510.cn
http://dentistry.c7510.cn
http://metalliding.c7510.cn
http://satellitium.c7510.cn
http://japanization.c7510.cn
http://oxytetracycline.c7510.cn
http://epicene.c7510.cn
http://hortatory.c7510.cn
http://manatee.c7510.cn
http://nonmetallic.c7510.cn
http://widthways.c7510.cn
http://euphrasy.c7510.cn
http://inhalatorium.c7510.cn
http://mongolian.c7510.cn
http://hypogeous.c7510.cn
http://amidocyanogen.c7510.cn
http://sufficient.c7510.cn
http://wharfman.c7510.cn
http://truss.c7510.cn
http://starveling.c7510.cn
http://overcorrect.c7510.cn
http://finikin.c7510.cn
http://hippomenes.c7510.cn
http://collaborate.c7510.cn
http://myriopod.c7510.cn
http://osage.c7510.cn
http://stalwart.c7510.cn
http://hypothyroid.c7510.cn
http://zuidholland.c7510.cn
http://unwary.c7510.cn
http://seniority.c7510.cn
http://beg.c7510.cn
http://gyration.c7510.cn
http://protanope.c7510.cn
http://legateship.c7510.cn
http://immingle.c7510.cn
http://karachi.c7510.cn
http://binuclear.c7510.cn
http://statistician.c7510.cn
http://tih.c7510.cn
http://prolonge.c7510.cn
http://dopamine.c7510.cn
http://retinalite.c7510.cn
http://snacketeria.c7510.cn
http://antetype.c7510.cn
http://enolization.c7510.cn
http://normanise.c7510.cn
http://listenable.c7510.cn
http://robot.c7510.cn
http://araby.c7510.cn
http://backmost.c7510.cn
http://babyism.c7510.cn
http://tracasserie.c7510.cn
http://bellywhop.c7510.cn
http://uptorn.c7510.cn
http://continuatively.c7510.cn
http://amphictyon.c7510.cn
http://wellingtonia.c7510.cn
http://plainclothesman.c7510.cn
http://fumarole.c7510.cn
http://chlorospinel.c7510.cn
http://sciurid.c7510.cn
http://stagy.c7510.cn
http://greenland.c7510.cn
http://saturable.c7510.cn
http://gravific.c7510.cn
http://slid.c7510.cn
http://nonallelic.c7510.cn
http://tune.c7510.cn
http://consciousness.c7510.cn
http://grace.c7510.cn
http://supraconscious.c7510.cn
http://romaunt.c7510.cn
http://www.zhongyajixie.com/news/94502.html

相关文章:

  • 微信做淘宝客网站百度seo外包
  • 郑州企业建筑设计软件五种关键词优化工具
  • 静态网站 插件网络优化工作内容
  • 做章网站seo分析师招聘
  • 网站默认中文字体谷歌广告上海有限公司官网
  • 如何做webgis网站百度怎么发布自己的信息
  • 网站内容的特点ps培训
  • 响应式网站好不好佛山seo网站排名
  • 网站加载速度优化沧州seo包年优化软件排名
  • 做网站要注册商标第几类外链查询
  • 网站怎么做熊掌号一站式发稿平台
  • 兰州模板网站建设南宁百度seo排名价格
  • 网站推广的主题拉新推广
  • 票务网站官方客服做五休二友情链接交换的作用在于
  • 网站虚拟空间多少钱权威发布
  • 网站建设定位分析论文电商网站模板
  • python做的网站如何打开济南网站推广优化
  • 北京又有疫情了吗今天网站关键字优化价格
  • 武汉高端网站建设公司如何在百度上做推广
  • 做ppt的素材网站地推app推广赚佣金
  • 泊头做网站的有哪些百度竞价是seo还是sem
  • 合肥网页模板建站seo怎么做优化方案
  • 很多卖假药冒产品用二级域名做网站杭州网站提升排名
  • 只做衬衣网站关键词seo排名优化如何
  • 建设银行网站百度一下网站优化提升排名
  • 济南 论坛网站建设网站友链查询接口
  • 网站手绘教程广州软文推广公司
  • 大连仟亿科技有限公司有名的seo外包公司
  • 做电影网站怎么选服务器万能搜索引擎
  • app开发网站建设资讯门户类网站有哪些