最新文章列表

使用javap分析Java的字符串操作

我们看这样一行简单的字符串赋值操作的Java代码。 String a = "i042416"; 使用命令行将包含了这行代码的Java类反编译查看其字节码: javap -v constant ...
JerryWang_SAP 评论(0) 有1744人浏览 2018-09-05 11:52

一个简单的例子教会您使用javap

javap是JDK自带的工具:   这篇文章使用下面这段简单的Java代码作为例子进行讲解。 class Outer { Nested nested; Nested getNested() { return nested; } } class Nested { Inner inner; Inner g ...
JerryWang_SAP 评论(0) 有575人浏览 2018-08-29 11:56

JDK 工具命令使用

  编写不易,转载请注明(http://shihlei.iteye.com/blog/2423653) 一 概述 Java应用,线上查看gc,堆分配,堆使用是很常见的需求。JDK自带的命令可以查看很 ...
ShihLei 评论(0) 有1451人浏览 2018-05-27 11:38

JVM系列之String

一、常量池     运行时常量池是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进去方法区的运行时常量池中存放。Java语言并不要求常量一定只有编译期才能产生,运行期间也可能将新的常量放入池中,比如String类的intern()方法。     常量池中主要存放两大类常量:字面量 ...
ncs123 评论(0) 有503人浏览 2017-12-14 21:40

从JVM指令层面看try-catch-finally返回值问题

从JVM指令层面看try-catch-finally返回值问题   貌似很多人对下面的方法的返回值都比较迷糊: package cc.lixiaohui.demo; public class ReturnValueTest { public int test() { int a; try { ...
莫名的拉风 评论(0) 有1801人浏览 2016-10-22 13:12

JVM 栈帧

JVM 栈帧  一、栈帧   栈帧(Frame)是用来存储数据和部分过程结果的数据结构,同时也被用来处理动态链接(Dynamic Linking)、方法返回值和异常分派 ...
莫名的拉风 评论(0) 有3879人浏览 2016-10-11 15:02

为什么try-catch的代码块,在javac之后的class,javassist会无法正常解析方法参数

在如下的代码,然后使用javac编译之后,得出Student.class  再根据javap -v Student.class,可以查看class的字节码结构,下面我只是截出本地参数的部分 由上图可看出,出来的参数列表并没有根据slot排序,这样就会导致javassist中获取参数名时异常,不知有没有朋友类似情况的博友吗?求指教。   
imzhiyang 评论(0) 有623人浏览 2015-10-06 21:23

Zz 深入理解JVM内幕:从基本结构到Java 7新特性

深入理解JVM内幕:从基本结构到Java 7新特性 摘要:许多没有深入理解JVM的开发者也开发出了很多非常好的应用和类库。不过,如果你更加理解JVM的话,你就会更加理解Java,这样你会有助于你处理类似于我们前面的案例中的问题。 每个Java开发者都知道Java字节码是执行在JRE(Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Jav ...
leonzhx 评论(0) 有1683人浏览 2014-01-09 21:01

用javap查看编译版本

我们可以用javap命令查看class文件的编译版本。 比如对Worke.class使用javap命令:javap -verbose Worker 我将看到Worker的反编译结果。其中前几行如下: Compiled from "Worker.java" public class com.teleca.robin.Worker extends java.lang.Thread ...
showlike 评论(0) 有1656人浏览 2013-08-23 10:59

[java]javap命令行反编译

如果某类已经被javac后为hello.class,那么使用javap -verbose hello即可反编译这个class文件。
MyEyeOfJava 评论(0) 有1566人浏览 2013-04-15 16:26

使用javap命令查看编译版本信息

    之前遇到几次现场故障,都是和class文件有关,比如版本不兼容造成Bad Version错误之类,需要检查class文件的编译版本信息。     一般的方法都是下载回来class文件,用jd打开反编译,这个还是比较方便的,偶尔遇到手头没有jd的情况,就直接找个16机制文件编辑器打开class文件,直接看minor version 和 major version。     今天无意中发现( ...
skydream 评论(0) 有1554人浏览 2013-02-17 15:41

javap查看虚拟机为你做了什么

public class Test { public static void main(String[] args) { Integer a = 10; Integer b = 10; System.out.println(a==b); } } >javac Test.java >javap -c Test 可以看到如下: ...
bingyingao 评论(0) 有559人浏览 2012-12-02 15:38

javap使用小结

一直在学习Java,碰到了很多问题,碰到了很多关于i++和++i的难题,以及最经典的String str = "abc" 共创建了几个对象的疑难杂症。 知道有一日知道了java的反汇编 命令 javap。现将学习记录做一小结,以供自己以后翻看。如果有错误的地方,请指正 1.javap是什么: where options include:-c Disassemble the ...
q_chaochao 评论(0) 有2209人浏览 2012-11-25 11:16

javap生成的字节码的意思

     用javap -c Test命令查看JVM生成的字节码: public boolean isOk(boolean); Code: 0: iload_1 1: ifeq 13 4: iconst_1 5: istore_2 6: goto 13 9: astore_3 10 ...
tankmarshal 评论(0) 有3300人浏览 2012-08-20 16:37

为了研究变量声明在for语句块前和for语句块内部的区别

编译并反编译BeforeFor和InFor,对比如图《javap》,截图中省略了前半部分,只有类名不同。 可见方法中堆大小同样为2,用来存储本地变量str和i; 3个局部变量,分别指向参数args、局部变量str、局部变量i; 一个参数,args 可以看到区别有2处: 1 str和i的存储位置相反 2 Before中的str的作用域为方法体内部,而In中为for循环体内部。 根据字节码可以看出: ...
duzc2 评论(0) 有1233人浏览 2012-05-11 09:54

javap 工具的介绍

[size=medium]javap 是jdk 自带的一个工具,可以反编译,也可以查看java编辑器生成的字符码,是分析代码的一个好的工具。 要分解class文件,方法:javap [option] class(没有后缀) option: -help 帮助; -l 输出行和变量的表,在这个步骤之前需要运行命令 javac -g class.java,得到javap -l calss 所需要的参数;详 ...
wang_2011_ying 评论(0) 有2131人浏览 2012-02-21 09:28

反汇编器-javap.exe

javap反汇编器   javap命令反汇编一个java字节代码文件, 返回有关可变部分和成员函数的信息,其命令行如下:    C:>javap options classname additionalClasses   javap的标准输出是公有变量和类的成员函数。javap反汇编器的命令行选项如下表: 选项 功能 -h 此选项将建立能够放入C头文件中的信息 -p 此选项将使java ...
zbjzbj 评论(0) 有1038人浏览 2011-12-28 16:13

Java 字节码之解析一

    一: Java 字节代码的组织形式   类文件 {     OxCAFEBABE ,小版本号,大版本号,常量池大小,常量池数组,访问控制标记,当前类信息,父类信息,实现的接口个数,实现的接口信息数组,域个数,域信息数组,方法个数,方法信息数组,属性个数,属性信息数组 }   二: 查看方法 ...
周凡杨 评论(1) 有5042人浏览 2011-12-01 15:20

[java]jdk反编译器

javap -c package.ClassName //... 349: iconst_0 350: iload 11 352: iload 4 354: iadd 355: invokestatic #427; //Method java/lang/System.arraycopy:(Ljava/lang/Ob ject;ILjava ...
philipho123 评论(0) 有1631人浏览 2011-09-02 13:15

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics