.生成java代碼首先選擇你要生成代碼的類圖,然后單擊菜單欄的Language菜單,選擇Ge
創(chuàng)新互聯(lián)專注于企業(yè)營銷型網站、網站重做改版、蘇仙網站定制設計、自適應品牌網站建設、H5技術、商城網站開發(fā)、集團公司官網建設、成都外貿網站建設公司、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為蘇仙等各大城市提供網站開發(fā)制作服務。
public AbstractStringBuilder reverse() {
boolean hasSurrogate = false;
int n = count - 1;
for (int j = (n-1) 1; j = 0; --j) {
char temp = value[j];
char temp2 = value[n - j];
if (!hasSurrogate) {
hasSurrogate = (temp = Character.MIN_SURROGATE temp = Character.MAX_SURROGATE)
|| (temp2 = Character.MIN_SURROGATE temp2 = Character.MAX_SURROGATE);
}
value[j] = temp2;
value[n - j] = temp;
}
if (hasSurrogate) {
// Reverse back all valid surrogate pairs
for (int i = 0; i count - 1; i++) {
char c2 = value[i];
if (Character.isLowSurrogate(c2)) {
char c1 = value[i + 1];
if (Character.isHighSurrogate(c1)) {
value[i++] = c1;
value[i] = c2;
}
}
}
}
return this;
}
這就是StringBuffer類中reverse方法的源代碼.這就是原理!
java反向輸入整數(shù)的位數(shù)可以采用取余判斷的方式,示例如下:
import?java.util.Scanner;
public?class?Dd?{
public?static?void?main(String[]?args){
Scanner?in=new?Scanner(System.in);
System.out.println("請輸入一個整數(shù):");
int?n=in.nextInt();//得到輸入的整數(shù)
int?sum=0;
int?i=1;
while(n0){//當余數(shù)不為0的時候,繼續(xù)操作
int?d=n%10;??
sum=sum*10+d;
n=n/10;
}
System.out.println(sum);
}
}
我做過類似的東西,但不是你這樣的,不過可以給你個方向。
1)這個些類信息都可以通過反射讀取到,詳情Java編程思想這本書有個編寫的小工具,或者百度下。
2)Eclipse有一個項目 GEF就是用來生成這種圖的?,F(xiàn)有的很多在Eclipse上生成的結構圖啊,UML圖啊,運行圖啊,等等都是通過這個項目來做的。詳情這個可能Google比較多。搜索建議搜索Eclipse插件開發(fā),講插件開發(fā)的,基本都會講到GEF。
Java代碼的編譯與反編譯
2017-02-21Hollis數(shù)盟
一、什么是編譯
1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。
2、用編譯程序產生目標程序的動作。編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優(yōu)化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發(fā)現(xiàn)有語法錯誤,給出提示信息。
二、什么是反編譯
計算機軟件反向工程(Reverseengineering)也稱為計算機軟件還原工程,是指通過對他人軟件的目標程序(可執(zhí)行程序)進行“逆向分析、研究”工作,以推導出他人的軟件產品所使用的思路、原理、結構、算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發(fā)軟件時的參考,或者直接用于自己的軟件產品中。
三、Java類的編譯與反編譯
我們在最初學習Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。
class文件打破了C或者C++等語言所遵循的傳統(tǒng),使用這些傳統(tǒng)語言寫的程序通常首先被編譯,然后被連接成單獨的、專門支持特定硬件平臺和操作系統(tǒng)的二進制文件。通常情況下,一個平臺上的二進制可執(zhí)行文件不能在其他平臺上工作。而Javaclass文件是可以運行在任何支持Java虛擬機的硬件平臺和操作系統(tǒng)上的二進制文件。
那么反編譯呢,就是通過helloworld.class文件得到java文件(或者說是程序員能看懂的Java文件)
四、什么時候會用到反編譯
1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那么我們可以把它反編譯成我們可以看得懂的文件。
2、學習Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現(xiàn)細節(jié),我們可以借助反編譯。
五、反編譯工具
1、javap
2、Jad:官網(墻裂推薦)
客戶端:
可以在官網下載可執(zhí)行文件,找到對應的操作系統(tǒng)的對應版本,然后進行安裝使用。
因為我使用的是linux操作系統(tǒng),所以我下載的是Linux版本的工具,這個工具下載好之后會有一個執(zhí)行文件,只要在執(zhí)行文件所在目錄執(zhí)行./jadhelloworld.class就會在當前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的Java代碼
Eclipse插件:
下載地址在官網下載插件的jar包,然后將jar包放到eclipse的plugins目錄下‘在打開Eclipse,Eclipse-Window-Preferences-Java,此時你會發(fā)現(xiàn)會比原來多了一個JadClipse的選項,單擊,在Pathtodecompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時文件的目錄。當然在JadClipse下還有一些子選項,如Debug,Directives等,按照默認配置即可。基本配置完畢后,我們可以查看一下class文件的默認打開方式,Eclipse-Window-Preferences-General-Editors-FileAssociations我們可以看到class文件的打開方式有兩個,JadClipse和Eclipse自帶的ClassFileViewer,而JadClipse是默認的。全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼