JVM的String操作
来源:互联网 发布:windows efi part红叉 编辑:程序博客网 时间:2024/05/20 06:54
看看虚拟机是怎么进行字符串操作的
C:/Java/jdk1.6.0_07/bin>javac Test.java
C:/Java/jdk1.6.0_07/bin>javap -c Test
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: ldc #2; //String abcd
2: astore_1
3: return
}
从上面可见生成字节码的时候是进行过优化的。
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String one = "ab" ;
String two = "cd " ;
String str =one + two;
}
}
C:/Java/jdk1.6.0_07/bin>javac Test.java
C:/Java/jdk1.6.0_07/bin>javap -c Test
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: ldc #2; //String ab
2: astore_1
3: ldc #3; //String cd
5: astore_2
6: new #4; //class java/lang/StringBuilder
9: dup
10: invokespecial #5; //Method java/lang/StringBuilder."<init>":()V
13: aload_1
14: invokevirtual #6; //Method java/lang/StringBuilder.append:(Ljava/lang/
String;)Ljava/lang/StringBuilder;
17: aload_2
18: invokevirtual #6; //Method java/lang/StringBuilder.append:(Ljava/lang/
String;)Ljava/lang/StringBuilder;
21: invokevirtual #7; //Method java/lang/StringBuilder.toString:()Ljava/la
ng/String;
24: astore_3
25: return
}
C:/Java/jdk1.6.0_07/bin>
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String one = "ab" ;
String two = "cd " ;
String str = one + two + "xx";
}
}
C:/Java/jdk1.6.0_07/bin>javac Test.java
C:/Java/jdk1.6.0_07/bin>javap -c Test
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: ldc #2; //String ab
2: astore_1
3: ldc #3; //String cd
5: astore_2
6: new #4; //class java/lang/StringBuilder
9: dup
10: invokespecial #5; //Method java/lang/StringBuilder."<init>":()V
13: aload_1
14: invokevirtual #6; //Method java/lang/StringBuilder.append:(Ljava/lang/
String;)Ljava/lang/StringBuilder;
17: aload_2
18: invokevirtual #6; //Method java/lang/StringBuilder.append:(Ljava/lang/
String;)Ljava/lang/StringBuilder;
21: ldc #7; //String xx
23: invokevirtual #6; //Method java/lang/StringBuilder.append:(Ljava/lang/
String;)Ljava/lang/StringBuilder;
26: invokevirtual #8; //Method java/lang/StringBuilder.toString:()Ljava/la
ng/String;
29: astore_3
30: return
}
C:/Java/jdk1.6.0_07/bin>
- JVM的String操作
- String 在 JVM 的存储结构
- 深入JVM-有关String的内存泄漏
- 对String的操作
- String 的操作
- string对象的操作
- string的基本操作
- 对string的操作
- cpp 的 string 操作
- String变量的操作
- String字符串的操作
- String字符串的操作
- Lua的string操作
- String字符串的操作
- String相关的操作
- string的相关操作
- string的操作
- string的操作
- MySpace创始人称MySpace已败给Facebook
- 最大值和次大值问题的最优算法
- 大学生就业寒冬中的冬日暖阳在哪?
- linux下jdk1.5,tomcat5.5,eclipse3.2的搭建与配置
- COM编程中的接口查询QueryInterface的实现原理
- JVM的String操作
- XP下安装IIS感言
- 为什么我找不到工作啊?(我快疯了)请前辈帮我分析分析
- ddddddddddddddd
- 心得体会
- ORACLE 中使用MD5
- 近期工作安排
- 最接近中位数的k个数
- 闪电计划升级完成,一呼百应助中小企业上新台阶