JAVA反编译 jad用法
Java下的一个简单易用的反编译工具jad
,
可以很方便的将.class反编译为.Java.
一、基本用法
Usage:jad
[option(s)]
直接输入类文件名,且支持通配符,如下所示。
c:\Java\>jad
example1.class
c:\Java\>jad
*.class
结果是将example1.class反编译为example1.jad
。将
example1.jad
改为example1.Java即得源文件。
二、Option -o
不提示,覆盖源文件
三、Option -s
c:\Java\>jad
-sJava example1.class
反编译结果以.Java为扩展名。
四、Option -p
将反编译结果输出到屏幕
c:\Java\>jad
-p example1.class
将反编译结果重定向到文件
c:\Java\>jad
-p
example1.class>example1.Java
五、Option -d
指定反编译的输出文件目录
c:\Java\>jad
-o -dtest -sJava
*.class
例:
jad
-o -r -sjava -d src bin/**/*.class
src: 是反組後的目錄
bin:指 package 開頭
将bin里面所有的.class反编译到src下面
相关文档:
String类中的构造函数
String(); 构造一个空字符串对象
String(byte[] bytes); 通过byte数组构造字符串对象
String(byte[] bytes,int offset,int length);通过byte数组,从offset开始,总共length长的字节构造字符串对象
String(char[] value); 通过char数组构造字符串对象
String(byte[] char,int offset,int length) ......
在java中,使用double进行运算,有时会出现精度丢失的问题,值会有那么0.00000***1偏差的偏差,导致匹配校验常常出现问题
解决方案如下:
/**
* 对double数据进行取精度.
* @param value double数据.
* ......
volatile关键字有什么用?
恐怕比较一下volatile和synchronized的不同是最容易解释清楚的。volatile是变量修饰符,而synchronized则作用于一段代码或方法;看如下三句get代码:
int i1; ......
JAVA四种基本排序,包括冒泡法,插入法,选择法,SHELL排序法.其中选择法是冒泡法的改进,SHELL排序法是 插入法的改进.所以从根本上来说可以归纳为两种不同的排序方法:即:插入法&冒泡法。
一、 插入法
遍历排序集合,每到一个元素时,都要将这个元素与所有它之前的元素遍历比较一遍,让符合排序顺序的元素挨个移动到当前� ......
在通过DNS查找域名的过程中,可能会经过多台中间DNS服务器才能找到指定的域名,因此,在DNS服务器上查找域名是非常昂贵的操作。在Java中为了缓解这个问题,提供了DNS缓存。当InetAddress类第一次使用某个域名创建InetAddress对象后,JVM就会将这个域名和它从DNS上获得的信息(如IP地址)都保存在DNS缓存� ......