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缓存� ......