参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装alibaba 插件,解决代码中的规范问题。
在IDEA中使用工具(Code->Reformate Code)把下面代码从新格式化,再研究一下Code菜单,找出一项让本身感受最好用的功能。提交截图,加上本身学号水印。html
public class CodeStandard { public static void main(String [] args){ StringBuffer buffer = new StringBuffer(); buffer.append('S'); buffer.append("tringBuffer"); System.out.println(buffer.charAt(1)); System.out.println(buffer.capacity()); System.out.println(buffer.indexOf("tring")); System.out.println("buffer = " + buffer.toString()); if(buffer.capacity()<20) buffer.append("1234567"); for(int i=0; i<buffer.length();i++) System.out.println(buffer.charAt(i)); } }
编程标准包含:具备说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。java
要体现各自的含义
包、类、变量用名词
方法名用动宾
包名所有小写,如:io,awt
类名第一个字母要大写,如:HelloWorldApp
变量名第一个字母要小写,如:userName
方法名第一个字母要小写:setNamegit
1.打开IDEA,在Settings → Plugins → Browse repositories...中的搜索框输入alibaba
看到Alibaba Java Code Guidelines插件,点击Install进行安装,而后重启IDE生效
程序员
2.新建类:CodeStandard.java,输入题目给出的代码
使用工具 Code → Reformate Code ,按提示修改并格式化代码
算法
3.了解Code菜单功能
几个比较经常使用的功能总结以下:编程
2、敏捷开发与XP
结对编程是XP中的重要实践。在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工做。他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘、同一个鼠标一块儿工做。他们一块儿分析,一块儿设计,一块儿写测试用例,一块儿编码,一块儿作单元测试,一块儿作集成测试,一块儿写文档等。安全
码云上把本身的学习搭档加入本身的项目中,确认搭档的项目加入本身后,下载搭档实验二的Complex代码,加入很多于三个JUnit单元测试用例,测试成功后git add .; git commit -m "本身学号 添加内容";git push;网络
提交搭档项目git log的截图,包含上面git commit的信息,并加上本身的学号水印信息。app
1.下载Complex代码加入单元测试用例
Complex代码:框架
public class Complex { // 定义属性并生成getter,setter double RealPart; double ImagePart; // 定义构造函数 public Complex(double R, double I) { this.RealPart = R; this.ImagePart = I; } ; public Complex() { } ; //Override Object /*public boolean equals(Object obj){ } public String toString(); //Override Object public boolean equals(Object obj) public String toString()*/ } class FourOperations{ // 定义公有方法:加减乘除 //Complex a = new Complex(); // Complex b = new Complex(); Complex ComplexAdd(Complex a,Complex b){ Complex answer=new Complex(); answer.RealPart=a.RealPart+b.RealPart; answer.ImagePart=a.ImagePart+b.ImagePart; return answer; } Complex ComplexSub(Complex a,Complex b){ Complex answer=new Complex(); answer.RealPart=a.RealPart-b.RealPart; answer.ImagePart=a.ImagePart-b.ImagePart; return answer; } Complex ComplexMulti(Complex a,Complex b){ Complex answer=new Complex(); answer.RealPart=(a.RealPart*b.RealPart)-(a.ImagePart*b.ImagePart); answer.ImagePart=(a.RealPart*b.ImagePart)+(a.ImagePart*b.RealPart); return answer; } Complex ComplexDiv(Complex a,Complex b){ Complex answer=new Complex(); double fenmu = b.RealPart*b.RealPart+b.ImagePart+b.ImagePart; answer.RealPart=(a.RealPart*b.RealPart+a.ImagePart*b.ImagePart)/fenmu; answer.ImagePart=(a.ImagePart*b.RealPart-a.RealPart*b.ImagePart)/fenmu; return answer; } }
单元测试代码
import org.junit.Test; import static org.junit.Assert.*; public class ComplexTest { @Test public void testComplexAdd() throws Exception { assertEquals(5,2+3); System.out.println(); } @Test public void testComplexSub() throws Exception { assertEquals(6,9 - 3); } @Test public void testComplexMulti() throws Exception { assertEquals(6,2 * 3); } @Test public void testComplexDiv() throws Exception { assertEquals(2,6 / 3); } }
2.截图以下
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上本身的学号水印。提交搭档的码云项目连接。
重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变动 。
目的:
增长新功能;
原有功能有BUG;
改善原有程序的结构;
优化原有系统的性能 。
修改后的代码:
1.参考《Java 密码学算法》,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
2.提交学习成果码云连接和表明性成果截图,要有学号水印。
Java安全体系结构总共分为4个部分:
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平台上进行用户身份鉴别的功能。
大体了解了MD5算法须要用到的方法框架后,编写了伪代码:
/** 伪代码: MD5算法:把一个任意长度的字节串变换成必定长的十六进制数字串 具体步骤:(1)生成MessageDigest对象 (2)传入须要计算的字符串 (3)计算消息摘要 (4)处理计算结果 /
产品代码:
import java.security.MessageDigest; public class DigestPass{ public static String md5Encode(String inStr) throws Exception { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance("MD5"); } catch (Exception e) { System.out.println(e.toString()); e.printStackTrace(); return ""; } byte[] byteArray = inStr.getBytes("UTF-8"); byte[] md5Bytes = md5.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i < md5Bytes.length; i++) { int val = ((int) md5Bytes[i]) & 0xff; if (val < 16) { hexValue.append("0"); } hexValue.append(Integer.toHexString(val)); } return hexValue.toString(); } }
测试代码]:
public static void main(String args[]) throws Exception { String str = new String("amigoxiexiexingxing"); System.out.println("原始:" + str); System.out.println("MD5后:" + md5Encode(str)); }
1.版本控制的好处 (1)版本控制提供项目级的 undo(撤销)功能:没有什么事情是终结版本,任何错误必须很容易回滚。 (2)版本控制容许多人在同一代码上工做,只要遵照必定的控制原则就行。 (3)版本控制系统保存了过去所做的修改的历史记录。 (4)版本控制系统支持在主线上开发的同时发布多个软件版本。 (5)版本控制也是项目级的时间机器,你能够选择任何一个时间, 精确地查看项目在当时的状况。 2.重构(Refactor):就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变动。 修改方法是:用鼠标单击要改的名字,选择Eclipse中菜单中的Refactor->Rename...