1.編碼標準java
在擴展包處搜索alibaba
並下載,安裝完成後重啓:
git
在要進行規範的文件右鍵選擇 「編碼規約掃描」開始掃描:算法
規範後的代碼以下:
安全
Override Methods(ctrl+O):重載基本類的方法網絡
Surround With(Ctrl+Alt+T):使用if-else、for、while等語句包裝代碼段框架
omment with Line Comment(Ctrl+/):將本行變成註釋ide
Comment with Block Comment(Ctrl+Shift+/):將選中的代碼塊變成註釋工具
Move Statement Down ( 方法、代碼下移 ) 快捷鍵:Ctrl + Shift + 向下箭頭單元測試
Move Statement Up ( 方法、代碼上移 )快捷鍵: Ctrl + Shift + 向上箭頭
學習
2.測試搭檔代碼
得到夥伴倉庫權限
搭檔代碼以下:
package Experiment; public class ComplexWZH { double realPart; double imagePart; public ComplexWZH() {} public ComplexWZH(double r, double i) { realPart = r; imagePart = i; } public double getRealPart() { return realPart; } public double getImagePart() { return imagePart; } @Override public boolean equals(Object obj) { if(this == obj) { return true; } if(obj == null) { return false; } if(getClass() != obj.getClass()) { return false; } if(!(obj instanceof ComplexWZH)) { return false; } else { ComplexWZH complexWZH = (ComplexWZH) obj; if (complexWZH.imagePart == ((ComplexWZH) obj).imagePart) { return true; } if (complexWZH.realPart == ((ComplexWZH) obj).realPart) { return true; } } return false; } @Override public String toString() { String str = ""; if (realPart == 0&& imagePart == 0) { str = "0.0"; } else if (realPart == 0&& imagePart != 0) { str = imagePart + "" + "i"; } else if (realPart != 0&& imagePart == 0) { str = realPart + ""; } else if (realPart !=0&& imagePart > 0) { str = realPart + "" + "+" + imagePart + "i"; } else if (realPart !=0&& imagePart < 0) { str = realPart + "" + imagePart + "i"; } return str; } public ComplexWZH complexAdd(ComplexWZH a) { return new ComplexWZH(realPart + a.getRealPart(), imagePart + a.getImagePart()); } public ComplexWZH complexSub(ComplexWZH a) { return new ComplexWZH(realPart - a.getRealPart(), imagePart - a.getImagePart()); } public ComplexWZH complexMulti(ComplexWZH a) { return new ComplexWZH(realPart *a.getRealPart() - imagePart *a.getImagePart(), realPart *a.getImagePart() + imagePart *a.getRealPart()); } public ComplexWZH complexDiv(ComplexWZH a) { if(a.getRealPart() == 0&&a.getImagePart() == 0) { System.out.println("除數不能爲0"); return new ComplexWZH(); } else { return new ComplexWZH((realPart *a.getRealPart() - imagePart *a.getImagePart())/(a.getRealPart()*a.getRealPart()-a.getImagePart()*a.getImagePart()),(realPart *a.getImagePart() + imagePart *a.getRealPart())/(a.getRealPart()*a.getRealPart()-a.getImagePart()*a.getImagePart())); } } }
對其中的全部方法均進行了測試
測試代碼:
package Experiment; import junit.framework.TestCase; import org.junit.Test; public class ComplexWZHTest extends TestCase { ComplexWZH a = new ComplexWZH(2.0,5.0); ComplexWZH b = new ComplexWZH(1.0,-4.0); ComplexWZH c = new ComplexWZH(-3.0,2.0); ComplexWZH d = new ComplexWZH(-4.0,-3.0); ComplexWZH e = new ComplexWZH(0.0,0.0); @Test public void testgetRealPart() throws Exception { assertEquals(2.0,a.getRealPart()); assertEquals(1.0,b.getRealPart()); assertEquals(-3.0,c.getRealPart()); assertEquals(-4.0,d.getRealPart()); assertEquals(0.0,e.getRealPart()); } @Test public void testgetImagePart() throws Exception { assertEquals(5.0,a.getImagePart()); assertEquals(-4.0,b.getImagePart()); assertEquals(2.0,c.getImagePart()); assertEquals(-3.0,d.getImagePart()); assertEquals(0.0,e.getImagePart()); } @Test public void testequals() throws Exception { assertEquals(true,a.toString().equals(a.toString())); assertEquals(false,b.toString().equals(c.toString())); assertEquals(false,d.toString().equals(e.toString())); } @Test public void testtoString() throws Exception { assertEquals("2.0+5.0i",a.toString()); assertEquals("1.0-4.0i",b.toString()); assertEquals("-3.0+2.0i",c.toString()); assertEquals("-4.0-3.0i",d.toString()); assertEquals("0.0",e.toString()); } @Test public void testComplexAdd() throws Exception { assertEquals("3.0+1.0i",a.ComplexAdd(b).toString()); assertEquals("-7.0-1.0i",c.ComplexAdd(d).toString()); assertEquals("-4.0-3.0i",d.ComplexAdd(e).toString()); } @Test public void testComplexSub() throws Exception { assertEquals("1.0+9.0i",a.ComplexSub(b).toString()); assertEquals("1.0+5.0i",c.ComplexSub(d).toString()); assertEquals("-3.0+2.0i",c.ComplexSub(e).toString()); } public void testComplexMulti() throws Exception { assertEquals("22.0-3.0i",a.ComplexMulti(b).toString()); assertEquals("18.0+1.0i",c.ComplexMulti(d).toString()); assertEquals("0.0",b.ComplexMulti(e).toString()); } public void testComplexDiv() throws Exception { assertEquals("-1.4666666666666666+0.2i",a.ComplexDiv(b).toString()); assertEquals("2.5714285714285716+0.14285714285714285i",c.ComplexDiv(d).toString()); assertEquals("0.0",a.ComplexDiv(e).toString()); } }
測試結果:
將測試好的代碼push至夥伴的碼雲並git log
重寫方法加上@Override進行註解
在代碼前添加建立者的相關信息
方法名、參數名、成員變量、局部變量都統一使用LowerCamelCase,必須聽從駝峯形式,重構前提示
/** * ComplexWZH * @author 林郅聰 * @date 2019/5/1 */ package Experiment; @SuppressWarnings({"ALL", "AlibabaLowerCamelCaseVariableNaming"}) public class ComplexWZH { @SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") double realPart; double imagePart; public ComplexWZH() {} public ComplexWZH(double r, double i) { realPart = r; imagePart = i; } public double getRealPart() { return realPart; } public double getImagePart() { return imagePart; } @Override public boolean equals(Object obj) { if(this == obj) { return true; } if(obj == null) { return false; } if(getClass() != obj.getClass()) { return false; } if(!(obj instanceof ComplexWZH)) { return false; } else { ComplexWZH complexWZH = (ComplexWZH) obj; if (complexWZH.imagePart == ((ComplexWZH) obj).imagePart) { return true; } if (complexWZH.realPart == ((ComplexWZH) obj).realPart) { return true; } } return false; } @Override public String toString() { String str = ""; if (realPart == 0&& imagePart == 0) { str = "0.0"; } else if (realPart == 0&& imagePart != 0) { str = imagePart + "" + "i"; } else if (realPart != 0&& imagePart == 0) { str = realPart + ""; } else if (realPart !=0&& imagePart > 0) { str = realPart + "" + "+" + imagePart + "i"; } else if (realPart !=0&& imagePart < 0) { str = realPart + "" + imagePart + "i"; } return str; } public ComplexWZH complexAdd(ComplexWZH a) { return new ComplexWZH(realPart + a.getRealPart(), imagePart + a.getImagePart()); } public ComplexWZH complexSub(ComplexWZH a) { return new ComplexWZH(realPart - a.getRealPart(), imagePart - a.getImagePart()); } public ComplexWZH complexMulti(ComplexWZH a) { return new ComplexWZH(realPart *a.getRealPart() - imagePart *a.getImagePart(), realPart *a.getImagePart() + imagePart *a.getRealPart()); } public ComplexWZH complexDiv(ComplexWZH a) { if(a.getRealPart() == 0&&a.getImagePart() == 0) { System.out.println("除數不能爲0"); return new ComplexWZH(); } else { return new ComplexWZH((realPart *a.getRealPart() - imagePart *a.getImagePart())/(a.getRealPart()*a.getRealPart()-a.getImagePart()*a.getImagePart()),(realPart *a.getImagePart() + imagePart *a.getRealPart())/(a.getRealPart()*a.getRealPart()-a.getImagePart()*a.getImagePart())); } } }
-4.Java密碼學相關內容
JCA
( Java Cryptography Architecture
, Java加密體系結構):JCA
提供基本的加密框架, 如證書、 數字簽名、消息摘要和密鑰對產生器。JCE
( Java Cryptography Extension
, Java加密擴展包): JCE
在JCA
的基礎上做了擴展, 提供了各類加密算法、 消息摘要算法和密鑰管理等功能。JCE的實現主要在javax.crypto包( 及其子包) 中JSSE
( Java Secure Sockets Extension
, Java安全套接字擴展包):JSSE
提供了基於SSL
(Secure Sockets Layer
,安全套接字層) 的加密功能。 在網絡的傳輸過程當中, 信息會通過多個主機(頗有可能其中一臺就被竊聽) , 最終傳送給接收者, 這是不安全的。這種確保網絡通訊安全的服務就是由JSSE來提供的。JAAS
( Java Authentication and Authentication Service
, Java鑑別與安全服務):JAAS
提供了在Java平臺上進行用戶身份鑑別的功能。
凱撒密碼
對凱撒密碼進行了驗證,並對代碼進行了重構
運行結果
Java對稱加密—DES算法
加密Hello World
對密文進行解密
Java非對稱加密—RSA算法
公私鑰的產生
加密Hello World
對密文進行解密
使用密鑰協定建立共享密鑰—DH算法
A和B分別產生本身的公鑰和私鑰
建立共享密鑰
Java摘要算法—MD5
夥搭檔學習熱情很高,一直督促我學習,過程當中也幫助我不少,是很好的學習夥伴。