You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Java对象头中的3位promo_bits有什么用途?

Java虚拟机在对象的头部存储了一些附加信息,如对象的锁状态、GC信息等。promo_bits是其中的一部分,它用于标识对象所处的代的类型。在HotSpot虚拟机中,promo_bits的取值如下:

classic represented as 000
const   represented as 001
type    represented as 010
biased  represented as 101

可以通过Unsafe类的getObject方法获取对象的promo_bits信息,示例代码如下:

import sun.misc.Unsafe;

import java.lang.reflect.Field;

public class PromoBitsDemo {

    private static Unsafe unsafe;

    static {
        try {
            Field field = Unsafe.class.getDeclaredField("theUnsafe");
            field.setAccessible(true);
            unsafe = (Unsafe) field.get(null);
        } catch (NoSuchFieldException | IllegalAccessException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Object obj = new Object();

        long headerSize = unsafe.arrayBaseOffset(Object[].class);
        long address = unsafe.getAddress(obj, headerSize);
        byte promoBits = (byte) (unsafe.getByte(address) >> 3 & 7);
        System.out.println("promo_bits: " + promoBits);
    }
}

运行以上代码,输出结果为:

promo_bits: 0

由此可见,promo_bits取值为0,表示该对象处于“classic”代。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

深入剖析 split locks,i++ 可能导致的灾难

6.3.0 20170516" .section .note.GNU-stack,"",@progbits```可以看到__sync_fetch_and_add 的汇编实现就是在 add 指令前声明了 lock 指令前缀。#### 1.2.2 Kernel 中的原子累加Kernel 中的... ##### Java 的 CAS```inline jlong Atomic::cmpxchg (jlong exchange_value, volatile jlong* dest, jlong compare_value) { bool mp = os::is_MP(); __asm__ __volatile__ (LOCK_IF_MP(%4)...

干货 | BitSail Connector开发详解系列一:Source

这里数据源的特点是以java.sql.ResultSet的接口形式返回获取的数据,对于这类数据库,我们往往将TypeInfoConverter对象设计为FileMappingTypeInfoConverter,这个对象会在BitSail类型系统转换时去绑定{readern... 这个文件起到的作用是进行job描述json文件中reader部分的columns的解析,对于columns中不同字段的type会根据上面描述文件从ClickhouseReaderOptions.COLUMNS字段中解析到readerContext.getTypeInfos()中。...

Android 音频架构| 社区征文

(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9dc5160da70b4bbd9598a09d2d7d22d2~tplv-k3u1fbpfcp-5.jpeg?)从图上看Andorid整个系统层面从下到上分以下四层:1. Linux Kernel2. 硬件适配层3. Framework层(可分为Java层与C++层)4. APP层我们上面介绍的四个层面的音频API实现均在Framework层,其他各层音频相关有哪些功能?当我们调用某一API时最终是怎么驱动硬件工作的呢?下面我们先看看系统各层音频相关模块及功能...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

Java对象头中的3位promo_bits有什么用途? -优选内容

获取视频信息(Java SDK)
获取视频信息功能可以获取指定视频资源的元信息。本文介绍如何通过 TOS Java SDK 获取视频信息。 示例代码以下代码展示如何获取视频信息。 java package example.java;import com.fasterxml.jackson.annotation.Js... @JsonProperty("bits_per_raw_sample") String BitsPerRawSample; @JsonProperty("nb_frames") String NbFrames; @JsonProperty("extradata_size") int ExtradataSize...
深入剖析 split locks,i++ 可能导致的灾难
6.3.0 20170516" .section .note.GNU-stack,"",@progbits```可以看到__sync_fetch_and_add 的汇编实现就是在 add 指令前声明了 lock 指令前缀。#### 1.2.2 Kernel 中的原子累加Kernel 中的... ##### Java 的 CAS```inline jlong Atomic::cmpxchg (jlong exchange_value, volatile jlong* dest, jlong compare_value) { bool mp = os::is_MP(); __asm__ __volatile__ (LOCK_IF_MP(%4)...
干货 | BitSail Connector开发详解系列一:Source
这里数据源的特点是以java.sql.ResultSet的接口形式返回获取的数据,对于这类数据库,我们往往将TypeInfoConverter对象设计为FileMappingTypeInfoConverter,这个对象会在BitSail类型系统转换时去绑定{readern... 这个文件起到的作用是进行job描述json文件中reader部分的columns的解析,对于columns中不同字段的type会根据上面描述文件从ClickhouseReaderOptions.COLUMNS字段中解析到readerContext.getTypeInfos()中。...
Android 音频架构| 社区征文
(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9dc5160da70b4bbd9598a09d2d7d22d2~tplv-k3u1fbpfcp-5.jpeg?)从图上看Andorid整个系统层面从下到上分以下四层:1. Linux Kernel2. 硬件适配层3. Framework层(可分为Java层与C++层)4. APP层我们上面介绍的四个层面的音频API实现均在Framework层,其他各层音频相关有哪些功能?当我们调用某一API时最终是怎么驱动硬件工作的呢?下面我们先看看系统各层音频相关模块及功能...

Java对象头中的3位promo_bits有什么用途? -相关内容

音视频字幕生成

3. 提交音频 3.1 请求请求地址:https://openspeech.bytedance.com/api/v1/vc/submit 请求方式:HTTP POST 3.1.1 Url 参数字段 说明 是否必填 备注 appid 应用标识 ✓ 用于标识当前应用。 words_per_line 每行最多展示字数 默认值 46 。 max_lines 每屏最多展示行数 默认 1 行。 use_itn 是否使用数字转换功能 默认关闭(False)。如果设置为开启(True),会将识别结果中的中文数字自动转成阿拉伯数字。 language 字幕语言类型...

流式语音识别

3.1.2. header 字段描述字段 (size in bits) 说明 值 Protocol version (4) 将来可能会决定使用不同的协议版本,因此此字段是为了使客户端和服务器在版本上达成共识。 0b0001 - version 1 (目前只有该版本) Header (4) Header 大小。实际 header 大小(以字节为单位)是 header size value x 4 。 0b0001 - header size = 4 (1 x 4) Message type (4) 消息类型。 0b0001 - 端上发送包含请求参数的 full client request0b001...

哈希函数

请注意:下文中的一些示例引用自 ClickHouse 社区文档 并经过一定修改确保可以在 ByteHouse 中正常使用。 MD5Calculates the MD5 from a string and returns the resulting set of bytes as FixedString(16). If yo... This is just [JavaHash] with zeroed out sign bit. This function is used in Apache Hive for versions before 3.0. This hash function is neither fast nor having a good quality. The only reason to use i...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询