首页 > 汇编语言 > 汇编语言字符串和数组
阅读:1,998
Java如何字符串处理及常用方法
在《Java虚拟机》一节中介绍了 Java 字节码,并说明了怎样将 java.class 文件反汇编为可读的字节码格式。本节将展示 Java 如何处理字符串,以及处理字符串的方法。
【示例】:寻址子串,下面的 Java 代码定义了一个字符串变量,其中包含了一个雇员 ID 和该雇员的姓氏。然后,调用 substring 方法将账号送入第二个字符串变量:
【示例】:寻址子串,下面的 Java 代码定义了一个字符串变量,其中包含了一个雇员 ID 和该雇员的姓氏。然后,调用 substring 方法将账号送入第二个字符串变量:
String empInfo = "10034Smith";
String id = empInfo.substring(0,5);
ldc #32; //字符串 10034Smith astore_0 aload_0 iconst_0 iconst_5 invokevirtual #34; // Method java/lang/String.substring astore_1现在分步研究这段代码,并加上自己的注释。ldc 指令把一个对字符串文本的引用从常量池加载到操作数栈。接着,astore_0 指令从运行时堆栈弹出该字符串引用,并把它保存到局部变量 empInfo 中,其在局部变量区域中的索引为 0:
ldc #32; //加载文本字符串:10034Smith
astore_0 //保存到 empInfo (索引 0)
aload_0 //加载 empInfo 到堆栈
然后,在调用 substring 方法之前,它的两个参数(0 和 5)必须压入操作数栈。该操作由指令 iconst_0 和 iconst_5 完成:
iconst_0
iconst_5
invokevirtual #34; // Method java/lang/String.substring
substring 方法将参数弹出堆栈,创建新字符串,并将该字符串的引用压入操作数栈。其后的 astore_1 指令把这个字符串保存到局部变量区域内索引 1 的位置,也就是变量 id 所在的位置:astore_1