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
伙搭档学习热情很高,一直督促我学习,过程当中也帮助我不少,是很好的学习伙伴。