asp.net 移动网站开发大型网站开发费用

张小明 2026/1/19 20:50:38
asp.net 移动网站开发,大型网站开发费用,电子商务网站建设系统,晋城网站建设价格Java对象在内存中的布局分为三部分#xff1a;对象头#xff08;Header#xff09;、实例数据#xff08;Instance Data#xff09;和对齐填充#xff08;Padding#xff09;。1. 对象头组成1.1 Mark Word#xff08;标记字段#xff09;存储对象的运行时数据#xf…Java对象在内存中的布局分为三部分对象头Header、实例数据Instance Data和对齐填充Padding。1. 对象头组成1.1 Mark Word标记字段存储对象的运行时数据包括哈希码HashCodeGC分代年龄4位所以最大年龄15锁状态标志无锁、偏向锁、轻量级锁、重量级锁、GC标记线程持有的锁、偏向线程ID、偏向时间戳等1.2 Klass Pointer类型指针指向方法区中对象的类元数据Class MetadataJVM通过这个指针确定对象属于哪个类。1.3 数组长度仅数组对象有如果对象是数组还需要记录数组的长度。2. 不同架构下的对象头大小32位JVM| Mark Word (32bits) | Klass Pointer (32bits) | [数组长度 (32bits)] | | 4字节 | 4字节 | 4字节仅数组 |64位JVM未开启指针压缩| Mark Word (64bits) | Klass Pointer (64bits) | [数组长度 (32bits)] | | 8字节 | 8字节 | 4字节仅数组 |64位JVM开启指针压缩 -XX:UseCompressedOops默认开启| Mark Word (64bits) | Klass Pointer (32bits) | [数组长度 (32bits)] | | 8字节 | 4字节 | 4字节仅数组 |3. Mark Word的具体结构32位JVM的Mark Word布局|----------------------------------------------------------------------| | Mark Word (32 bits) | |----------------------------------------------------------------------| | identity_hashcode:25 | age:4 | biased_lock:1 | lock:2 | state:00 | 无锁 | thread:23 | epoch:2 | age:4 | biased_lock:1 | lock:2 | state:01 | 偏向锁 | ptr_to_lock_record:30 | state:00 | 轻量级锁 | ptr_to_heavyweight_monitor:30 | state:10 | 重量级锁 | |11 | GC标记 |----------------------------------------------------------------------|64位JVM的Mark Word布局|------------------------------------------------------------------------------| | Mark Word (64 bits) | |------------------------------------------------------------------------------| | unused:25 | identity_hashcode:31 | unused:1 | age:4 | biased_lock:1 | lock:2 | 无锁 | thread:54 | epoch:2 | unused:1 | age:4 | biased_lock:1 | lock:2 | 偏向锁 | ptr_to_lock_record:62 | lock:2 | 轻量级锁 | ptr_to_heavyweight_monitor:62 | lock:2 | 重量级锁 | | lock:2 | GC标记 |------------------------------------------------------------------------------|4. 锁状态在对象头中的表示锁状态通过最后2-3位表示01无锁/偏向锁通过biased_lock位区分001无锁101偏向锁00轻量级锁10重量级锁11GC标记5. 代码示例查看对象头import org.openjdk.jol.info.ClassLayout; import org.openjdk.jol.vm.VM; public class ObjectHeaderDemo { public static void main(String[] args) { // 打印JVM详情 System.out.println(VM.current().details()); // 创建对象 Object obj new Object(); // 查看对象布局 System.out.println( Object对象布局 ); System.out.println(ClassLayout.parseInstance(obj).toPrintable()); // 数组对象 int[] array new int[3]; System.out.println( 数组对象布局 ); System.out.println(ClassLayout.parseInstance(array).toPrintable()); // 自定义对象 User user new User(); System.out.println( 自定义对象布局 ); System.out.println(ClassLayout.parseInstance(user).toPrintable()); } static class User { private int id; private String name; private boolean active; } }6. 示例输出简化版# 64位JVM开启指针压缩 java.lang.Object object internals: OFFSET SIZE TYPE DESCRIPTION VALUE 0 4 (object header) # Mark Word前半部分 01 00 00 00 4 4 (object header) # Mark Word后半部分 00 00 00 00 8 4 (object header) # Klass Pointer e5 01 00 f8 12 4 (loss due to the next object alignment) # 对齐填充 Instance size: 16 bytes7. 重要概念7.1 指针压缩Compressed Oops默认开启将64位指针压缩为32位可节省内存提高缓存命中率对象地址对齐到8字节倍数7.2 对象对齐对象总大小必须是8字节的倍数不足部分用对齐填充补齐7.3 对象头的实际使用// 查看对象的hashCode存储在对象头中 Object obj new Object(); int hashCode obj.hashCode(); // 从对象头获取 // synchronized使用对象头中的锁信息 synchronized(obj) { // 锁信息记录在对象头中 }8. 工具JOLJava Object LayoutOpenJDK提供的对象布局分析工具dependency groupIdorg.openjdk.jol/groupId artifactIdjol-core/artifactId version0.16/version /dependency总结Java对象头是理解Java对象内存布局、锁机制、GC机制的基础。不同的JVM实现可能有细微差异但基本结构相似。通过理解对象头可以更好地优化内存使用和理解并发机制。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

17年哪个网站做h5最好营销软文500字

Gittyup终极指南:用图形化界面彻底理解Git历史 【免费下载链接】Gittyup Understand your Git history! 项目地址: https://gitcode.com/gh_mirrors/gi/Gittyup 想要真正掌握Git版本控制吗?Gittyup这款免费开源的图形化Git客户端,通过…

张小明 2026/1/17 22:54:47 网站建设

好网站具备条件网站建设公司简介模板

Typora作为一款备受赞誉的跨平台Markdown编辑器,以其“所见即所得”的实时预览、简洁优雅的界面和强大的Markdown支持,赢得了全球大量开发者、作家和技术工作者的青睐 。然而,在其核心功能之一——代码块的处理上,用户在长期使用中…

张小明 2026/1/17 22:54:52 网站建设

网站开发技术考试题目软件服务开发

ToolsFx:终极密码学工具箱的全面解析与实战指南 【免费下载链接】ToolsFx 基于kotlintornadoFx的跨平台密码学工具箱.包含编解码,编码转换,加解密, 哈希,MAC,签名,大数运算,压缩,二维码功能,ctf等实用功能,支持插件 项目地址: https://gitcode.com/gh_mirrors/to/…

张小明 2026/1/17 22:54:50 网站建设

合肥商城网站建设多少钱建一个网站首先要怎么做

文章目录技术架构与功能概述核心功能模块技术亮点应用场景主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!技术架构与功能概述 该项目基于Vue.jsUniAppDja…

张小明 2026/1/17 22:54:50 网站建设

网站优化推广教程企业网站建设规划方案

文章内容 场景:互联网大厂 Java 小白求职者面试 在某知名互联网大厂的面试现场,面试官老王正面对着应聘者超好吃。此次面试主要围绕 Java 技术栈展开,结合具体业务场景,考察应聘者的技术深度和应用能力。 第一轮:基础技…

张小明 2026/1/17 22:54:51 网站建设

小型网站搭建中信建设有限责任公司

第一章:传统线程模型的终结与虚拟线程的崛起在现代高并发应用场景中,传统基于操作系统线程的并发模型逐渐暴露出其局限性。每个线程的创建和销毁都需要消耗大量系统资源,且线程数量受限于操作系统的调度能力。当应用需要处理成千上万的并发任…

张小明 2026/1/17 22:54:51 网站建设