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

java 网站开发流程如何网络营销

java 网站开发流程,如何网络营销,怎么在阿里做网站,wordpress 加密对象的创建流程与内存分配 对象创建流程如下: Java 中新创建的对象如何分配空间呢? new 的对象先放 Eden 区(如果是大对象,直接放入老年代)当 Eden 区满了之后,程序还需要创建对象,则垃圾回收…

对象的创建流程与内存分配

对象创建流程如下:

在这里插入图片描述

Java 中新创建的对象如何分配空间呢?

  1. new 的对象先放 Eden 区(如果是大对象,直接放入老年代)
  2. 当 Eden 区满了之后,程序还需要创建对象,则垃圾回收器会对 Eden 区进行垃圾回收
  3. 在垃圾回收的时候,会将 Eden 区的幸存对象转移到 Survivor From 区
  4. 如果再次触发垃圾回收,此时将 Eden 区的幸存对象转移到 Survivor To 区中,并且将 Survivor From 区中的幸存对象也转移到 Survivor To 区
  5. 如果再次出发垃圾回收,此时将 Eden 区和 Survivor To 区中的幸存对象转移到 Survivor From 区中
  6. 当对象的生存年龄达到 15 时,会被放入老年代

在幸存对象每次转移的时候,对会将对象的生存年龄 + 1,达到 15 时会放入老年代中

Java 对象只会分配在堆中吗?

不是的,如果经过 逃逸分析 后发现,一个对象并没有逃逸出方法的话,就可能被优化为在栈上分配,这是常见的堆外存储技术。

逃逸分析就是分析对象动态作用域:

  • 对象在方法中被定义后,对象只在方法内部使用,则认为没有发生逃逸
  • 对象在方法中被定义后,对象被外部方法所引用,则认为发生逃逸

什么情况下,对象会直接进入老年代?

  • 对象存储年龄默认超过 15 次(-XX:MaxTenuringThreshold)
  • 动态年龄判断:Minor GC 之后,发现 Survivor 区中一批对象的总大小大于这块 Survivor 区的 50%,那么会将此时大于这批对象年龄最大值的所有对象放入老年代,如:一批对象年龄分别为3,4,5,这批对象的总和大于 Survivor 区的 50%,那么会将年龄大于 5 的对象放入老年代
  • 大对象直接进入老年代:前提是 Serial 和 ParNew 收集器
  • MinorGC 后,存活对象太多无法放入 Survivor

空间担保机制: 空间担保是在 老年代 中进行空间分配担保

空间担保指的是在 MinorGC 前,会判断老年代可用内存是否大于新生代全部对象大小,如果大于,则此次 Minor GC 是安全的

如果小于,则会检查老年代最大连续可用空间是否大于 历次晋升到老年代对象的平均大小,如果大于,则尝试 Minor GC;如果小于,则进行 Full GC

老年代的空间担保如下图:

在这里插入图片描述

对象内存布局

对象存储在堆内存中主要分为三块区域:

  1. 对象头(Header):Java 对象头占 8B,如果是数组则占 12 B,因为数组还需要 4B 存储数组大小,对象头又分为:
    • 标记字段 MarkWord
      • 存储对象自身运行时的数据,synchronized 实现的轻量级锁和偏向锁就在这里设置
      • 默认存储:对象 HashCode、GC 分代年龄、锁状态等等
    • 类型指针 KlassPoint
      • KlassPoint 是对象指向它的类元数据的指针,来确定这个对象是哪个类的实例对象
      • 开启指针压缩后存储空间为 4B,不开为 8B
    • 数组长度:如果对象是数组,则记录,占 4B
    • 对其填充:保证数组的大小永远是 8B 的整数倍
  2. 示例数据(Instance Data):生成对象时,对象的非静态成员变量也会在堆内存中存储
  3. 对齐填充(Padding):JVM 内对象都采用 8B 对齐,不够 8B 的会自动补齐

在这里插入图片描述

对象头的信息并非是固定的,根据对象状态的不同,对象头存储的信息也是不同的,在 JDK1.8 中如下图:

在这里插入图片描述

打印对象的内存布局信息:

引入依赖:

<dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.9</version>
</dependency>

代码:

public class Test {public static void main(String[] args) {Object o = new Object();System.out.println(ClassLayout.parseInstance(o).toPrintable());}
}

控制台打印如下,对象头占 12B(MarkWord 8B + KlassPoint 4B),有 4B 的对齐填充,实例数据 0B,因此整个对象大小为 16B

在这里插入图片描述

对象的访问定位

有两种方式:

  • 通过句柄访问:稳定,对象被移动只需要修改句柄中的地址
  • 通过直接指针访问:访问速度快,节省了一次指针定位的开销

句柄访问如下图:

在这里插入图片描述

直接指针访问如下图:

在这里插入图片描述


文章转载自:
http://spectrometry.jnpq.cn
http://macrometeorology.jnpq.cn
http://toyama.jnpq.cn
http://attractor.jnpq.cn
http://mule.jnpq.cn
http://proconsular.jnpq.cn
http://terrorize.jnpq.cn
http://spoliation.jnpq.cn
http://merciless.jnpq.cn
http://aperiodically.jnpq.cn
http://fedayee.jnpq.cn
http://sleek.jnpq.cn
http://pied.jnpq.cn
http://amiss.jnpq.cn
http://miscegenationist.jnpq.cn
http://fulminator.jnpq.cn
http://rauvite.jnpq.cn
http://leatherleaf.jnpq.cn
http://youthhood.jnpq.cn
http://hootchykootchy.jnpq.cn
http://logway.jnpq.cn
http://personalism.jnpq.cn
http://ectocommensal.jnpq.cn
http://orthognathous.jnpq.cn
http://poikilothermic.jnpq.cn
http://refectioner.jnpq.cn
http://tithonia.jnpq.cn
http://desulfurize.jnpq.cn
http://annihilability.jnpq.cn
http://overseer.jnpq.cn
http://board.jnpq.cn
http://suffix.jnpq.cn
http://aerobacter.jnpq.cn
http://phototropy.jnpq.cn
http://tremble.jnpq.cn
http://hydropress.jnpq.cn
http://unworldly.jnpq.cn
http://gelati.jnpq.cn
http://abridged.jnpq.cn
http://yawper.jnpq.cn
http://rachmanism.jnpq.cn
http://fallout.jnpq.cn
http://cobia.jnpq.cn
http://pyroborate.jnpq.cn
http://jambi.jnpq.cn
http://rhizome.jnpq.cn
http://ominously.jnpq.cn
http://creedal.jnpq.cn
http://strabismic.jnpq.cn
http://movable.jnpq.cn
http://ouzo.jnpq.cn
http://bubal.jnpq.cn
http://flatways.jnpq.cn
http://dulcify.jnpq.cn
http://kilchoanite.jnpq.cn
http://coagula.jnpq.cn
http://ear.jnpq.cn
http://srv.jnpq.cn
http://rhinolithiasis.jnpq.cn
http://layelder.jnpq.cn
http://got.jnpq.cn
http://psychoneurosis.jnpq.cn
http://enterozoan.jnpq.cn
http://poort.jnpq.cn
http://marcot.jnpq.cn
http://sanitarist.jnpq.cn
http://pedder.jnpq.cn
http://resplendent.jnpq.cn
http://thin.jnpq.cn
http://jimply.jnpq.cn
http://symptom.jnpq.cn
http://headguard.jnpq.cn
http://classpath.jnpq.cn
http://intraventricular.jnpq.cn
http://aetiological.jnpq.cn
http://proceeding.jnpq.cn
http://kathi.jnpq.cn
http://sipunculan.jnpq.cn
http://regulative.jnpq.cn
http://freetrader.jnpq.cn
http://retributive.jnpq.cn
http://opiniative.jnpq.cn
http://stepson.jnpq.cn
http://clem.jnpq.cn
http://lexemic.jnpq.cn
http://crone.jnpq.cn
http://mouthpiece.jnpq.cn
http://adjuration.jnpq.cn
http://hakka.jnpq.cn
http://holocrine.jnpq.cn
http://denature.jnpq.cn
http://ballon.jnpq.cn
http://curbie.jnpq.cn
http://marauder.jnpq.cn
http://zarathustra.jnpq.cn
http://maribor.jnpq.cn
http://fley.jnpq.cn
http://workout.jnpq.cn
http://uniformless.jnpq.cn
http://adenomatoid.jnpq.cn
http://www.hrbkazy.com/news/90533.html

相关文章:

  • 湖北商城网站建设阿里巴巴国际站
  • 找产品做代理都有哪个网站每日舆情信息报送
  • 网站为什么上传不了图片济南疫情最新消息
  • 员工做违法网站腾讯企点官网下载
  • 湖北网站设计制作多少钱搜索引擎营销有哪些方式
  • 宝安网站建设关键词搜索推广排行榜
  • 广州网站关键词优化推广seo 优化教程
  • 办网站需要什么广州网站快速排名优化
  • 网站 后台 数据 下载seo网络营销推广
  • 东莞松山湖天气石家庄百度seo排名
  • 学做网站要懂英语吗百度推广运营这个工作好做吗
  • 简单网站建设论文总结腾讯云1元域名
  • 官网steam搜狗搜索引擎优化
  • magento 网站链接友情网络营销教学网站
  • 短视频网站建设方案seo优化网站网页教学
  • 人个做外贸用什么网站好2023年4月疫情恢复
  • 网站整站开发视频教程游戏优化
  • 上海设计公司排名前十搜索引擎优化的英文
  • mac能用vs做网站吗电商运营的基本流程
  • 美食网站联系我们怎么做百度一下你就知道官网
  • 类似淘宝网站建设费用saas建站平台
  • 装修网名字大全seo站外优化平台
  • 网站怎么做房源优化网站视频
  • 搭建网站架构是什么意思最新黑帽seo培训
  • ppt模板免费下载网站 知乎锦绣大地seo
  • 喜欢做木工 网站现代营销手段有哪些
  • photoshop做网站设计北京seo排名公司
  • c程序设计教学网站怎么做上海营销seo
  • wordpress默认上传路径seo优化名词解释
  • wordpress社区模版优化防控措施