ldc java_Jvm规范中的LDC_W指令问题?
简而言之,作用于 ldc 一致,但是参数与 ldc_w 不一致, ldc 参数是一个无符号byte, 最大值是 255 , 但常量池的大小可能大于 255 , 为了加载 255 之后的常量, ldc_w 出现了。
可以通过下方代码验证
public class Test {
public static void main(String[] args) {
System.out.println(65535);
System.out.println(65536);
System.out.println(65537);
System.out.println(65538);
System.out.println(65539);
System.out.println(65540);
System.out.println(65541);
System.out.println(65542);
System.out.println(65543);
System.out.println(65544);
System.out.println(65545);
System.out.println(65546);
System.out.println(65547);
System.out.println(65548);
System.out.println(65549);
System.out.println(65550);
System.out.println(65551);
System.out.println(65552);
System.out.println(65553);
System.out.println(65554);
System.out.println(65555);
System.out.println(65556);
System.out.println(65557);
System.out.println(65558);
System.out.println(65559);
System.out.println(65560);
System.out.println(65561);
System.out.println(65562);
System.out.println(65563);
System.out.println(65564);
System.out.println(65565);
System.out.println(65566);
System.out.println(65567);
System.out.println(65568);
System.out.println(65569);
System.out.println(65570);
System.out.println(65571);
System.out.println(65572);
System.out.println(65573);
System.out.println(65574);
System.out.println(65575);
System.out.println(65576);
System.out.println(65577);
System.out.println(65578);
System.out.println(65579);
System.out.println(65580);
System.out.println(65581);
System.out.println(65582);
System.out.println(65583);
System.out.println(65584);
System.out.println(65585);
System.out.println(65586);
System.out.println(65587);
System.out.println(65588);
System.out.println(65589);
System.out.println(65590);
System.out.println(65591);
System.out.println(65592);
System.out.println(65593);
System.out.println(65594);
System.out.println(65595);
System.out.println(65596);
System.out.println(65597);
System.out.println(65598);
System.out.println(65599);
System.out.println(65600);
System.out.println(65601);
System.out.println(65602);
System.out.println(65603);
System.out.println(65604);
System.out.println(65605);
System.out.println(65606);
System.out.println(65607);
System.out.println(65608);
System.out.println(65609);
System.out.println(65610);
System.out.println(65611);
System.out.println(65612);
System.out.println(65613);
System.out.println(65614);
System.out.println(65615);
System.out.println(65616);
System.out.println(65617);
System.out.println(65618);
System.out.println(65619);
System.out.println(65620);
System.out.println(65621);
System.out.println(65622);
System.out.println(65623);
System.out.println(65624);
System.out.println(65625);
System.out.println(65626);
System.out.println(65627);
System.out.println(65628);
System.out.println(65629);
System.out.println(65630);
System.out.println(65631);
System.out.println(65632);
System.out.println(65633);
System.out.println(65634);
System.out.println(65635);
System.out.println(65636);
System.out.println(65637);
System.out.println(65638);
System.out.println(65639);
System.out.println(65640);
System.out.println(65641);
System.out.println(65642);
System.out.println(65643);
System.out.println(65644);
System.out.println(65645);
System.out.println(65646);
System.out.println(65647);
System.out.println(65648);
System.out.println(65649);
System.out.println(65650);
System.out.println(65651);
System.out.println(65652);
System.out.println(65653);
System.out.println(65654);
System.out.println(65655);
System.out.println(65656);
System.out.println(65657);
System.out.println(65658);
System.out.println(65659);
System.out.println(65660);
System.out.println(65661);
System.out.println(65662);
System.out.println(65663);
System.out.println(65664);
System.out.println(65665);
System.out.println(65666);
System.out.println(65667);
System.out.println(65668);
System.out.println(65669);
System.out.println(65670);
System.out.println(65671);
System.out.println(65672);
System.out.println(65673);
System.out.println(65674);
System.out.println(65675);
System.out.println(65676);
System.out.println(65677);
System.out.println(65678);
System.out.println(65679);
System.out.println(65680);
System.out.println(65681);
System.out.println(65682);
System.out.println(65683);
System.out.println(65684);
System.out.println(65685);
System.out.println(65686);
System.out.println(65687);
System.out.println(65688);
System.out.println(65689);
System.out.println(65690);
System.out.println(65691);
System.out.println(65692);
System.out.println(65693);
System.out.println(65694);
System.out.println(65695);
System.out.println(65696);
System.out.println(65697);
System.out.println(65698);
System.out.println(65699);
System.out.println(65700);
System.out.println(65701);
System.out.println(65702);
System.out.println(65703);
System.out.println(65704);
System.out.println(65705);
System.out.println(65706);
System.out.println(65707);
System.out.println(65708);
System.out.println(65709);
System.out.println(65710);
System.out.println(65711);
System.out.println(65712);
System.out.println(65713);
System.out.println(65714);
System.out.println(65715);
System.out.println(65716);
System.out.println(65717);
System.out.println(65718);
System.out.println(65719);
System.out.println(65720);
System.out.println(65721);
System.out.println(65722);
System.out.println(65723);
System.out.println(65724);
System.out.println(65725);
System.out.println(65726);
System.out.println(65727);
System.out.println(65728);
System.out.println(65729);
System.out.println(65730);
System.out.println(65731);
System.out.println(65732);
System.out.println(65733);
System.out.println(65734);
System.out.println(65735);
System.out.println(65736);
System.out.println(65737);
System.out.println(65738);
System.out.println(65739);
System.out.println(65740);
System.out.println(65741);
System.out.println(65742);
System.out.println(65743);
System.out.println(65744);
System.out.println(65745);
System.out.println(65746);
System.out.println(65747);
System.out.println(65748);
System.out.println(65749);
System.out.println(65750);
System.out.println(65751);
System.out.println(65752);
System.out.println(65753);
System.out.println(65754);
System.out.println(65755);
System.out.println(65756);
System.out.println(65757);
System.out.println(65758);
System.out.println(65759);
System.out.println(65760);
System.out.println(65761);
System.out.println(65762);
System.out.println(65763);
System.out.println(65764);
System.out.println(65765);
System.out.println(65766);
System.out.println(65767);
System.out.println(65768);
System.out.println(65769);
System.out.println(65770);
System.out.println(65771);
System.out.println(65772);
System.out.println(65773);
System.out.println(65774);
System.out.println(65775);
System.out.println(65776);
System.out.println(65777);
System.out.println(65778);
System.out.println(65779);
System.out.println(65780);
System.out.println(65781);
System.out.println(65782);
System.out.println(65783);
System.out.println(65784);
System.out.println(65785);
System.out.println(65786);
System.out.println(65787);
System.out.println(65788);
System.out.println(65789);
System.out.println(65790);
System.out.println(65791);
System.out.println(65792);
System.out.println(65793);
System.out.println(65794);
System.out.println(65795);
System.out.println(65796);
System.out.println(65797);
System.out.println(65798);
System.out.println(65799);
System.out.println(65800);
System.out.println(65801);
System.out.println(65802);
System.out.println(65803);
System.out.println(65804);
System.out.println(65805);
System.out.println(65806);
System.out.println(65807);
System.out.println(65808);
System.out.println(65809);
System.out.println(65810);
System.out.println(65811);
System.out.println(65812);
System.out.println(65813);
System.out.println(65814);
System.out.println(65815);
System.out.println(65816);
System.out.println(65817);
System.out.println(65818);
System.out.println(65819);
System.out.println(65820);
System.out.println(65821);
System.out.println(65822);
System.out.println(65823);
System.out.println(65824);
System.out.println(65825);
System.out.println(65826);
System.out.println(65827);
System.out.println(65828);
System.out.println(65829);
System.out.println(65830);
System.out.println(65831);
System.out.println(65832);
System.out.println(65833);
System.out.println(65834);
System.out.println(65835);
System.out.println(65836);
}
}
通过反编译查看字节码
$ javap -c Test | grep -Eo '[0-9]+:.*' | sed -n '4,$p' | tail -n 10
2439: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
2442: ldc_w #303 // int 65834
2445: invokevirtual #4 // Method java/io/PrintStream.println:(I)V
2448: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
2451: ldc_w #304 // int 65835
2454: invokevirtual #4 // Method java/io/PrintStream.println:(I)V
2457: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
2460: ldc_w #305 // int 65836
2463: invokevirtual #4 // Method java/io/PrintStream.println:(I)V
2466: return
ldc java_Jvm规范中的LDC_W指令问题?相关推荐
- 版本为2.5的OpenMP规范中的编译制导指令汇总
OpenMP的所有编译制导指令是以#pragma omp开始 #pragmaomp指令 [子句[,子句]„] 版本为2.5的OpenMP规范中的指令有以下这些: parallel:用在一个结构块之前, ...
- 【Java 并发编程】线程指令重排序问题 ( 指令重排序规范 | volatile 关键字禁止指令重排序 )
文章目录 总结 一.指令重排序规范 二.指令重排序示例 总结 Java 并发的 333 特性 : 原子性 : 每个操作都是 不可拆分的原子操作 ; 在线程中进行 a++ 就不是原子操作 , 该操作分为 ...
- FPGA之道(36)Verilog中的编译指令
文章目录 前言 Verilog中的编译指令 define指令 timescale指令 inlcude指令 前言 本文摘自<FPGA之道>,一起来了解下Verilog中的编译指令. Veri ...
- 【译】 WebSocket 协议第十二章——使用其他规范中的WebSocket协议
概述 本文为 WebSocket 协议的第十二章,本文翻译的主要内容为如何使用其他规范中的 WebSocket 协议. 使用其他规范中的WebSocket协议(协议正文) WebSocket协议旨在由 ...
- 【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 FFmpegAndroid 框架 )
文章目录 一.推荐开源项目 二.Android 中执行 FFMPEG 指令 1.导入依赖 2.Java 代码编写 3.使用时的代码示例 三.博客资源 一.推荐开源项目 最近需要在 Android 中进 ...
- HLSL中的MUL指令深层剖析
HLSL中的MUL指令深层剖析 原作者邮箱 BoYueGame#Gmail#com 欢迎交流. 此贴可以随意转载而不用注名出处.但也别说是你写的就行. 在读此文之前,读者应该知道什么是行主,列主矩阵, ...
- java中Freemarker list指令详解
java Freemarker中list指令主要是进行迭代服务器端传递过来的List集合. 定义 <#list nameList as names> ${names} </#list ...
- c语言中预处理指令的作用,C语言中常用预处理指令
转载自 https://blog.csdn.net/farsight2009/article/details/58602886 姓名:张艳博 学号:17021223249 [嵌牛导读]: C语言中常用 ...
- C#中的预处理指令详解
这篇文章主要介绍了C#中的预处理指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregion ...
- 转移地址在内存中的jmp指令 检测点9.1
转移地址在内存中的jmp指令有两种格式: (1)jmp word ptr 内存单元地址(段内转移) 功能:从内存单元地址处开始存放着一个字,是转移的目的偏移地址. mov ax,0123h mov d ...
最新文章
- bootstrap 文件上传fileinput
- 转赋值表达式解析的流程
- To rename a docker image
- 前端开发常见的浏览器兼容性问题?
- mysql 去除空格
- 分段插值/Hermite插值
- 用Matlab解MTPA的dq轴电流的方程
- 配置flashgot+axel
- memcpy和memmove以及memcmp
- 次氯酸钠phP,次氯酸钠
- JAVA语言对接报警类语音通知接口demo示例
- Word如何添加图片水印,看这里就够了!怎样在word加入图像水印
- 古人的智慧之回文诗——《两相思》
- 树型拓扑计算机网络的缺点是,拓扑结构的优缺点_网状拓扑结构特点_总线的优缺点...
- 微博开放领域的事件抽取【持续更新】
- \t\t使用INDY的IdMappedPortTCP控件实现动态的HTTP代理服务器
- animation初体验
- 校园招聘部分公司薪资待遇
- SSRS中加入书签功能及数据集窗口
- android ifw 启动广告,应用控制器清爽无广告版-应用控制器官方最新版v1.9.5 免费版-腾牛安卓网...