首页 > 编程语言 > 详细

javap的简单理解

时间:2014-11-10 02:08:45      阅读:379      评论:0      收藏:0      [点我收藏+]

?

参照http://blog.csdn.net/junsure2012/article/details/7099222

? ? ? ?java特种兵,深入理解jvm

? ? ? ?了解一些javap的知识。

?

这里列举下我这里接触过的常用指令吧

xconst_n ? ?将常量压入栈顶 ?如iconst_1,将int常量1压入栈顶

bipush ?n ? ?将-128 到 127 压入栈顶 ? ? ?

sipush ?n ? ?将-32768 到32767压入栈顶

ldc ? ? ? ?v ? ?将int,float,String产量压入栈顶

xload_n ? ? ?将第n+1个变量推送至栈顶,如fload_1 将第二float类型的变量推送至栈顶

xstore_n ? ? 将栈顶元素pop到n+1个变量中,如lstore_1则将栈顶元素保存至第二个变量中。

dup ? ? ? ? ? ?复制栈顶数值,并且将其压入栈顶。

new ? ? ? ? ? ?创建对象并且将对象压入栈顶。

iinc ? ? ? ? ? ? 将指定的int型变量+1

?

invokevirtual ? ? 调用实例方法

invokespecail ? ?调用超类构造方法,实例初始化方法,实例私有方法。

invokestatic ? ? ? 调用静态方法

invokeinterface ?调用接口方法

?

?

?

下面我就举几个简单的例子来详细说明一些我理解的javap的功能。

? ? ? ?1.关于变量i++

? ? ? ??

public class TestString {
	
	public static void main(String[] args) {
			int  a = 1  , b = 1 ,c = 1 , d =1;
			a++;
			++b;
			c=c++;
			d=++d;
			System.out.println(a+","+b+","+c+","+d);
	}
	
}

?

? ?
bubuko.com,布布扣
?
bubuko.com,布布扣
?
bubuko.com,布布扣
?

?

? 2.关于String常量值

? ? ?

public class TestString {
	
	public static void main(String[] args) {
			String a="a" + "b" + "c";
	}
	
}

? ??


bubuko.com,布布扣
?

?

3.关于StringBuilder

? ?

public class TestString {
	
	public static void main(String[] args) {
			 int index=1;
       String str="my.string"+index;
	}
	
}

? ??
bubuko.com,布布扣
?

javap的简单理解

原文:http://labreeze.iteye.com/blog/2153856

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!