(1)编码标准
(2)Git的使用
(3)重构
(4)Java密码学相关内容的学习java
在IDEA中使用工具(Code->Reformate Code)把下面代码从新格式化,再研究一下Code菜单,找出一项让本身感受最好用的功能。提交截图,加上本身学号水印。git
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)); } }
快捷键ctrl + alt + L
格式化代码,效果以下(其实我直接粘贴复制进去Idea就自动帮我格式化了,神仙工具)
算法
在码云上把本身的学习搭档加入本身的项目中,确认搭档的项目加入本身后,下载搭档实验二的Complex代码,加入很多于三个JUnit单元测试用例,测试成功后git add .; git commit -m "本身学号 添加内容";git push;
提交搭档项目git log的截图,包含上面git commit的信息,并加上本身的学号水印信息。编程
仓库添加成员,同时扫码加入搭档的项目
app
git clone url
克隆仓库,添加测试代码工具
import junit.framework.TestCase; import org.junit.Test; public class ComplexTest_Pair extends TestCase { Complex a = new Complex(); Complex b = new Complex(2,-3); Complex c = new Complex(1.23,3.21); @Test public void testequals(){ assertFalse(b.equals(a)); } @Test public void testtoString(){ assertEquals("0",a.toString()); assertEquals("2.0-3.0i",b.toString()); assertEquals("1.23+3.21i",c.toString()); } @Test public void testComplexSub(){ assertEquals("-0.77+6.21i",c.complexsub(b).toString()); assertEquals("-2.0+3.0i",a.complexsub(b).toString()); } @Test public void testComplexMul(){ assertEquals("0",a.complexmulti(b).toString()); assertEquals("12.09+2.73i",b.complexmulti(c).toString()); } }
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上本身的学号水印。提交搭档的码云项目连接。单元测试
使用编码规约扫描,直接点击下面的提醒,alt+enter自动修正
学习
KeyGenerator kg=KeyGenerator.getInstance("DESede");
kg.init(168);
SecretKey k=kg.generateKey( );
FileOutputStream f=new FileOutputStream("key1.dat"); ObjectOutputStream b=new ObjectOutputStream(f); b.writeObject(k);
KeyPairGenerator kpg=KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
KeyPair kp=kpg.genKeyPair( );
PublicKey pbkey=kp.getPublic( ); PrivateKey prkey=kp.getPrivate( );生成密钥
加密
解密
测试
无
此次试验让我感触最深的是Java密码学中关于“用”和“懂”的关系。没想到林语堂先生还说过这么一句话,我算是林语堂先生的小迷弟了,三观受他影响很大。果真,个人想法又和林语堂先生同样,我一直抱着要弄懂一个东西就要搞明白它的原理的想法。好比要研究物理现象就要知道背后的原理和公式。可是开始学习IT相关的东西后,我发现这样的学习方法让我愈来愈力不从心,由于我发现这方面的东西都是一层一层包装起来的。C语言够底层了,下面还有汇编,下面还有机器语言,再下面还有硬件,真的要从头弄懂一台计算机是怎么运行的实在是一个庞大的工程。这只是举一个例子,Java中也是这样,有不少的库能够直接调用,可是有时候你没办法一个个搞懂它们的实现。
不得不说,先会用再去明白它的道理,虽然我以为这样不是最传统的那种原理->应用的学习方法,可是平时我少不了这么作,由于根本没空去看一个个库的具体实现。我想库被建立的意义也就在于方便人们调用,而不用重复造轮子
还有,我仍是没弄懂结对编程的好处在哪,至少就目前几个小项目来看,彻底一我的的编程能力和思考能力是够的,只要头脑清晰,反而比两我的效率高。个人结对队友也很强,可是1+1也不过=2。可能还没掌握精髓?可能就是不适合合做?