用javap命令反编译来分析字符串问题
public class Test {
public static void main(String[] args) throws IOException {
String s1="t";
String s2="m";
}
}
Compiled from "Test.java"
public class typ.Test extends java.lang.Object{
public typ.Test();
Code:
: aload_0
; //Method java/lang/Object."<init>":()V
: return
public static void main(java.lang.String[]) throws java.io.IOException;
Code:
: ldc #19; //String t 进入操作数栈顶
: astore_1 //String t 出操作数栈,赋值给变量1。即s1
; //String m 进入操作数栈顶
: astore_2 //String m 出操作数栈,赋值给变量2,即s2
: return
}public class Test {
public static void main(String[] args) throws IOException {
String s1="t";
String s2="t";
}
}Compiled from "Test.java"
public class typ.Test extends java.lang.Object{
public typ.Test();
Code:
: aload_0
; //Method java/lang/Object."<init>":()V
: return
public static void main(java.lang.String[]) throws java.io.IOException;
Code:
; //String t 进入操作数栈顶
: astore_1 //String t 出操作数栈,赋值给变量1,即s1
; //String t 进入操作数栈顶
: astore_2 //String t 出操作数栈。赋值给变量2。即s2
: return
}public class Test {
public static void main(String[] args) throws IOException {
String s1="tm";
String s2="t"+"m";
}
}Compiled from "Test.java"
public class typ.Test extends java.lang.Object{
public typ.Test();
Code:
: aload_0
; //Method java/lang/Object."<init>":()V
: return
public static void main(java.lang.String[]) throws java.io.IOException;
Code:
; //String tm 进入操作数栈顶
: astore_1 //String tm 出操作数栈,赋值给变量1,即s1
; //String tm 进入操作数栈顶
: astore_2 //String tm 出操作数栈,赋值给变量2。即s2
: return
}}
Compiled from "Test.java"
public class typ.Test extends java.lang.Object{
public typ.Test();
Code:
: aload_0
; //Method java/lang/Object."<init>":()V
: return
public static void main(java.lang.String[]) throws java.io.IOException;
Code:
; //String t 进入操作数栈顶
: astore_1 //String t 出操作数栈,赋值给变量1,即tmp
; //String m 进入操作数栈顶
: astore_2 //String m 出操作数栈。赋值给变量2。即s1
; //class java/lang/StringBuilder 创建StringBuilder类型对象 : dup //复制栈顶一个字长的数据,将复制后的数据压栈 : aload_1 //tmp 进入操作数栈顶
; //Method java/lang/String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
; //Method java/lang/StringBuilder."<init>":(Ljava/lang/String;)V
; //String m
; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
: astore_3
: return
}用javap命令反编译来分析字符串问题的更多相关文章
- javap命令反编译
javap命令反编译生成的是程序员可以认识的字节码文件 -help --help -? 输出此用法消息 -version 版本信息,其实是当前javap所在jdk的版本信息,不是class在哪个jdk ...
- JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)
一.前言 我们在日常学习中,对一个java代码有问题,不知道jvm内部怎么进行解析的时候:有个伟大壮举就是反编译,这样就可以看到jvm内部怎么进行对这个java文件解析的!我们可以使用JDK自带的ja ...
- javap 命令 反编译代码
javap 命令 javap -c classname 一个好的分析class二进制文件的 链接 http://blog.csdn.net/pwlazy/article/details/7954169
- 使用javap进行反编译Java枚举
这是一个枚举类Day.java public enum Day { MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY(" ...
- Java反编译代码分析(一)
浅析如何读懂这种反编译过来的文件,不喜勿喷. 赋值 Node node; Node node1 = _$3.getChildNodes().item(0); node1; node1; JVM INS ...
- 反编译字节码角度分析synchronized关键字的原理
1.synchronized介绍 synchronized是java关键字.JVM规范中,synchronized关键字用于在线程并发执行时,保证同一时刻,只有一个线程可以执行某个代码块或方法:同时还 ...
- java7(1)——反编译深入理解增强的switch(读字节命令实战)
[本文介绍] 本文主要讲java_7 的改进switch的底层实现.反编译一个使用带String的switch的demo并一步步解析反编译出来的字节命令,从编译的角度解读switch的底层实现. [正 ...
- 使用javap反编译class文件
一个普通的Java类: package org.ccnt.concurrence; public class VolatileTest { public static volatile int rac ...
- @使用javap反编译Java字节码文件
在Sun公司提供的JDK中,就已经内置了Java字节码文件反编译工具javap.exe(位于JDK安装目录的bin文件夹下). 我们可以在dos窗口中使用javap来反汇编指定的Java字节码文件.在 ...
随机推荐
- jquery常用选择器(转)
jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个 ...
- SQL Server 排名函数实现
在SQL Server 中有四大排名函数分别是: 1.row_number() 2.ntile() 3.rank() 4.dense_rank() -------------------------- ...
- delphi如何获得当前操作系统语言环境
function GetWindowsLanguage: string; var WinLanguage: ..] of char; begin VerLanguageName(GetSystemDe ...
- Google浏览器调试js
1.进入source找到js位置 一般js文件就到js目录下找,tpl中的就到tpl中找. 我这次写在tpl中的,就到list中找,它就把list中的js单独显示出来了. 2.设置断点,进行排错.刷新 ...
- 160G 视频教程(Java+Android+项目视频)免费下载
我不喜欢多说没用,直接给下载链接,进去直接下载,下载不动的联系网站客服解决!我只和我的好朋友们分享好的视频教程 http://edu.csdn.net/main/video.shtml 视频教程目录过 ...
- HDU 1002 A + B Problem II(大整数相加)
A + B Problem II Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u De ...
- j详细说明ava于clone办法
原文地址:http://leihuang.org/2014/11/14/java-clone/ In java, it essentially means the ability to create ...
- ASP.NET MVC导入excel到数据库
MVC导入excel和webform其实没多大区别,以下为代码: 视图StationImport.cshtml的代码: @{ ViewBag.Title = "StationImport&q ...
- MVC过滤器基本使用
Action过滤器 /// <summary> /// 执行代码前执行 /// </summary> /// <param name="filterCo ...
- 如何避免JSP乱码
如何解决JavaWeb乱码问题 作为一个合格的web开发人员应该是什么问题都遇到过的,尤其是乱码问题.大家也许都体会到了,我们中国人学编程,很大的一个不便就是程序的编码问题,无论学习什么技术,我们 ...