久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

java代碼分析,java代碼分析開(kāi)源

如何分析經(jīng)過(guò)混淆后的java代碼

混淆代碼 是為了防止class文件被反編譯用的 但是程序的功能還是正常的 和你正常運(yùn)行一樣

濟(jì)陽(yáng)網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),濟(jì)陽(yáng)網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為濟(jì)陽(yáng)成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的濟(jì)陽(yáng)做網(wǎng)站的公司定做!

如果連變量名都混淆了,就是說(shuō)所有有具體意義的英文變量名都用a,b,c,x,y等等來(lái)表示,那這是不可能還原的,因?yàn)殡娔X也不可能知道你這個(gè)a實(shí)際上代表了你的年齡而那個(gè)c代表了你老婆的胸圍!

但如果只是個(gè)事混淆,那網(wǎng)上倒有不少工具可以格式化源代碼!自己搜一搜吧!推薦一款編輯器,IntelliJ,很不錯(cuò),值得一提的是,我用過(guò)的眾多編輯器中,這款編輯器的代碼格式化功能最強(qiáng)大!

java分析代碼執(zhí)行過(guò)程,輸出結(jié)果

static 是靜態(tài)聲明,所以會(huì)先執(zhí)行Employee.id的時(shí)候,會(huì)先執(zhí)行static的腳本,就是id 的默認(rèn)賦值和靜態(tài)塊的執(zhí)行,即打印那個(gè)static_block

所以流程是。賦值id,打印static_block;那上面的代碼就是打印static_block 和Main:0

誰(shuí)能幫我把這個(gè)java代碼分析一下我被繞暈了

//哈哈,感覺(jué)這道題真心好啊。不知道樓主是從哪里看到的。

//首先這道題樓主要明白以下兩點(diǎn):

//1:繼承時(shí),子類會(huì)隱藏父類相同的方法,要調(diào)用父類方法就必須使用super關(guān)鍵字。

//2:向上轉(zhuǎn)型時(shí),子類會(huì)丟失和父類不同的方法,可以使用父類的不同名的所有方法。

public?class?PolyDemo09{

public?static?void?main(String[]?args){

A?a1?=?new?A();

A?a2?=?new?B();//B類型向上轉(zhuǎn)型丟失與A類不同方法

B?b?=?new?B();?

C?c?=?new?C();

D?d?=?new?D();

System.out.println("⑴????"?+?a1.show(b));//B類的父類是A,所以A?and?A

System.out.println("⑵????"?+?a1.show(c));?//C類父類的父類是A,D和他是同級(jí)。所以A?and?A

System.out.println("⑶????"?+?a1.show(d));//D類方法有,所以不會(huì)向上轉(zhuǎn)型,所以A?and?D

System.out.println("⑷????"?+?a2.show(b));?/*注意這時(shí)候a2的兩個(gè)方法其實(shí)是

public?String?show(D?obj)?{

return?("A?and?D");

}

public?String?show(A?obj)?{

return?("B?and?A");

}??B的父類是A,所以B?and?A?

*/

/**/???????????????????????????????????????????????????????????

System.out.println("⑸????"?+?a2.show(c));//C的父類的父類是A,所以B?and?A;

System.out.println("⑹????"?+?a2.show(d));??//D有對(duì)應(yīng)方法,所以A?and?D

System.out.println("⑺????"?+?b.show(b));?/*這個(gè)就是繼承了,繼承除了隱藏父類中和子類同名的方法外,在子類中可以直接使用父類的方法。所以B?and?B

所以就變成了

public?String?show(D?obj)?{

return?("A?and?D");

}

public?String?show(B?obj)?{

return?("B?and?B");

}

public?String?show(A?obj)?{

return?("B?and?A");

*/

System.out.println("⑻????"?+?b.show(c));?//C?的父類是B,所以B?and?B

System.out.println("⑼????"?+?b.show(d));//D有相應(yīng)方法,所以A?and?D

}

}

class?A?{

public?String?show(D?obj)?{

return?("A?and?D");

}

public?String?show(A?obj)?{

return?("A?and?A");

}

}

class?B?extends?A?{

public?String?show(B?obj)?{

return?("B?and?B");

}

public?String?show(A?obj)?{

return?("B?and?A");

}

}

class?C?extends?B?{

}

class?D?extends?B?{

}

Java代碼如何優(yōu)化?從哪些方面入手?分析?

1)盡量指定類、方法的final修飾符。帶有final修飾符的類是不可派生的,Java編譯器會(huì)尋找機(jī)會(huì)內(nèi)聯(lián)所有的final方法,內(nèi)聯(lián)對(duì)于提升Java運(yùn)行效率作用重大,此舉能夠使性能平均提高50%。

2)盡量重用對(duì)象。由于Java虛擬機(jī)不僅要花時(shí)間生成對(duì)象,以后可能還需要花時(shí)間對(duì)這些對(duì)象進(jìn)行垃圾回收和處理,因此生成過(guò)多的對(duì)象將會(huì)給程序的性能帶來(lái)很大的影響。

3)盡可能使用局部變量。調(diào)用方法時(shí)傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時(shí)變量都保存在棧中速度較快,其他變量,如靜態(tài)變量、實(shí)例變量等,都在堆中創(chuàng)建速度較慢。

4)慎用異常。異常對(duì)性能不利,只要有異常被拋出,Java虛擬機(jī)就必須調(diào)整調(diào)用堆棧,因?yàn)樵谔幚磉^(guò)程中創(chuàng)建了一個(gè)新的對(duì)象。異常只能用于錯(cuò)誤處理,不應(yīng)該用來(lái)控制程序流程。

5)乘法和除法使用移位操作。用移位操作可以極大地提高性能,因?yàn)樵谟?jì)算機(jī)底層,對(duì)位的操作是最方便、最快的,但是移位操作雖然快,可能會(huì)使代碼不太好理解,因此最好加上相應(yīng)的注釋。

6)盡量使用HashMap、ArrayList、StringBuilder,除非線程安全需要,否則不推薦使用 Hashtable、Vector、StringBuffer,后三者由于使用同步機(jī)制而導(dǎo)致了性能開(kāi)銷。

盡量在合適的場(chǎng)合使用單例。使用單例可以減輕加載的負(fù)擔(dān)、縮短加載的時(shí)間、提高加載的效率,但并不是所有地方都適用于單例。

java代碼解讀

第一個(gè)if是判斷searchkey是不是空的,如果不是空的,就追加到name字段作為查詢條件,like模糊查詢

接著第二個(gè)if判斷如果status的值不為空,就追加到status作為條件

如果status為空,走else分支,從userContext中獲取到employee對(duì)象,接著判斷,如果它的角色不是manager的話

把這個(gè)對(duì)象的id拿出來(lái),作為seller.Id的條件進(jìn)行查詢

java源代碼分析 實(shí)在是不太會(huì),求高手教教我。

package?test2;

import?java.io.BufferedReader;

import?java.io.File;

import?java.io.FileInputStream;

import?java.io.FileOutputStream;

import?java.io.IOException;

import?java.io.InputStream;

import?java.io.InputStreamReader;

import?java.util.HashMap;

import?java.util.Map;

import?java.util.Set;

public?class?JavaCodeAnalyzer?{

public?static?void?analyze(File?file)?throws?IOException{

//FileOutputStream?fos?=?new?FileOutputStream("F;"+File.separator+"result.txt");

if(!(file.getName().endsWith(".txt")||file.getName().endsWith(".java"))){

System.out.println("輸入的分析文件格式不對(duì)!");

}

InputStream?is=?new?FileInputStream(file);

BufferedReader?br=?new?BufferedReader(new?InputStreamReader(is));

String?temp;

int?count=0;

int?countSpace=0;

int?countCode=0;

int?countDesc=0;

MapString,?Integer?map?=?getKeyWords();

while((temp=br.readLine())!=null){

countKeys(temp,?map);

count++;

if(temp.trim().equals("")){

countSpace++;

}else?if(temp.trim().startsWith("/*")||temp.trim().startsWith("http://")){

countDesc++;

}else{

countCode++;

}

}

System.out.printf("代碼行數(shù):"+countCode+"占總行數(shù)的%4.2f\n",(double)countCode/count);

System.out.printf("空行數(shù):"+countSpace+"占總行數(shù)的%4.2f\n",(double)countSpace/count);

System.out.printf("注釋行數(shù):"+countDesc+"占總行數(shù)的%4.2f\n",(double)countDesc/count);

System.out.println("總行數(shù):"+count);

System.out.println("出現(xiàn)最多的5個(gè)關(guān)鍵字是:");

System.out.println("");

System.out.println("");

System.out.println("");

System.out.println("");

System.out.println("");

}

public?static?void?main(String[]?args)?{

getKeyWords();

File?file?=?new?File("F://Test.java");

try?{

analyze(file);

}?catch?(IOException?e)?{

//?TODO?自動(dòng)生成?catch?塊

e.printStackTrace();

}

}

public?static?MapString,Integer?getKeyWords(){

MapString,Integer?map?=?new?HashMapString,?Integer();

String[]keywords?=?{"abstract","assert","boolean","break","byte","case","catch","char","class","continue","default","do","double","else","enum","extends","final","finally","float","for","if","implements","import","instanceof","int","interface","long","native","new","package","private","protected","public","return","????strictfp","short","static","super","????switch","synchronized","this","throw","throws","transient","try","void","volatile","while","goto","const"};

for(String?s:keywords){

map.put(s,?0);

}

return?map;

}

public?static?void?countKeys(String?s,MapString,Integer?map){

SetString?keys?=?map.keySet();

for(String?ss:keys){

if(s.indexOf(ss)!=-1){

map.put(ss,?map.get(ss)+1);

}

}

}

}

上班沒(méi)啥時(shí)間了,還有點(diǎn)沒(méi)寫完,你在想想。

當(dāng)前標(biāo)題:java代碼分析,java代碼分析開(kāi)源
當(dāng)前網(wǎng)址:http://sd-ha.com/article38/phhjpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管軟件開(kāi)發(fā)、面包屑導(dǎo)航、企業(yè)網(wǎng)站制作、網(wǎng)站策劃、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)