alibaba插件安裝:Setting
->Plugins
->Brows repositories...
->搜索alibaba
->Install安裝
java
完成後效果:安全
代碼規範:app
Code
--->Reformat Code
將代碼格式標準化,代碼效果以下:單元測試
以爲最方便的功能:Code
->Generate
,能夠直接新建文件(以下圖),也能夠在文件中新建代碼學習
同伴代碼
測試
已添加的測試用例
加密
提交過程:插件
Git
--->Commit File
設計
重構的定義:重構(Refactor),就是在不改變軟件外部行爲的基礎上,改變軟件內部的結構,使其更加易於閱讀、易於維護和易於變動 。3d
那哪些地方須要重構呢?就是有臭味道(Bad Smell)的代碼。
在IDEA中也有一個refactor菜單
較爲典型的就是重複的代碼Duplicated Code
,下圖是我摘錄的圖片
重構前代碼展現:
發現的代碼問題有:
重構後代碼效果
我和同伴參考了老師的博客後,決定選擇MD5做爲嘗試的代碼進行加密。Md5加密是一種極爲安全的加密方法,原本覺得會有很大的難度。但在老師的博客中已經給出了詳細的過程
java.security包中的MessageDigest類提供了計算消息摘要的方法,
首先生成對象,生成MessageDigest對象MessageDigest m=MessageDigest.getInstance("MD5");
執行其update()方法能夠將原始數據傳遞給該對象傳入須要計算的字符串
m.update(x.getBytes("UTF8" ));
而後執行其digest( )方法便可獲得消息摘要, 計算消息摘要
byte s[ ]=m.digest( );
處理計算結果
string result=""; String result=""; for (int i=0; i<s.length; i++){ result+=Integer.toHexString((0x000000ff & s[i]) | 0xffffff00).substring(6); }
如下是咱們編寫的代碼:
import java.security.MessageDigest; public class MD5 { public static String MD5(String key) throws Exception { byte[] cipher = key.getBytes(); MessageDigest clear = MessageDigest.getInstance("MD5"); clear.update(cipher); byte s[] = clear.digest(); StringBuffer str = new StringBuffer(); for (int i = 0; i < s.length; i++) { int a = ((int) s[i]) & 0xff; if (a < 16) { str.append("0"); } str.append(Integer.toHexString(a)); } return str.toString(); } public static void main(String args[]) throws Exception { String str1 = new String("dingyi"); System.out.println("原始:" + str1); System.out.println("MD5後:" + MD5(str1)); String str2 = new String("kongyue"); System.out.println("原始:" + str2); System.out.println("MD5後:" + MD5(str2)); String str3 = new String("abc"); System.out.println("原始:" + str3); System.out.println("MD5後:" + MD5(str3)); } }
在本次實驗中,我認識到了代碼的規範性的重要。在現實中,好的代碼的功能效率都會大大增長,在代碼規範性的實驗中,我也認識到了,本身將以前寫C的代碼時習慣帶進了Java的編寫中,不少時候,代碼格式就不規範了,在以後要積極矯正。
在本次實驗中,我還認識到了,在Java的學習中,團隊協做是有很大做用的。在跟隊友一塊兒編寫代碼時,個人隊友會提出一些我沒有想到過的問題,打開咱們的知識盲點,一步一步的探索,也是頗有意義的。
步驟 | 耗時 | 百分比 |
---|---|---|
需求分析 | 15min | 11.1% |
設計 | 30min | 22.2% |
代碼實現 | 45min | 33.3% |
測試 | 20min | 14.8% |
分析總結 | 25min | 18.5% |