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% |