发表于: 2017-07-25 01:54:57
6 822
一 今天做的事情:
1 把书上第三章运算符复习了一遍,通过手算加深了尤其是有负数参与的运算。
A 在算-5>>>2时,最后算得补码为:0011_1111_1111_1111_1111_1111_1111_1110,符号位为0,说明为正数,就不用再求反码原码了。在转成十进制时,一开始我求的很麻烦,是2^29+2^27+2^26+...+2^1,没开始算就感觉好难算,不经意间瞥了一眼书,书上写了这个:
(2^30-2),很长时间也没想起来人家为什么要写这个。写日报之前刚刚一会儿才明白过来。后面加1,再加1进一位不就是2^30么?那2^30-1-1不就是所求的那一大串么?越来越体会到算法的重要性。
以前学VB的时候有人说VB早就过时了,现在想起来他说的那只是表象。VB作为一种计算机语言可能不是那么的流行了,但是它面对对象的思想却永远年轻。还有老师教的一些冒泡排序法二分法等等,这些基本的算法很少去用,在java里甚至直接可以直接调用一些Arrays用具类来实现,但算法永不老。
另外通过计算-5>>2我自己的笨算法和书上轻轻带过的算法,让我认识到我对编程没有一点天赋。我为什么一开始就没想到2^30呢?在看到2^30后马上明白它的意思也好啊。抱歉我都没做到。不过我觉得这个世界虽然残酷但是还没有残酷到要拼天赋的那种地步。撸多了的舍友会在打匹配开局后突然说“糟了天赋没配呢。。。”现实不是。谁一生下来都不是敲着键盘点着鼠标来的。
2 学习了第四章流程控制和数组,了解了各种判断和循环语句和数组的使用。
A 控制循环结构:主要有continue、break。return三个关键字组成。
a countinue:提前结束本次循环,直接进入下次循环;
b break:提前终止循环语句。
c return:方法的结尾,终止方法。
B 了解了一些Java的Arrays工具类,在使用此类之前必须要在程序的一开始加上这么一句:
import java.util.Arrays;
这句话的作用是导入java.util.Arrays类,具体的没细看,这部分属于第五章的内容,我只看了要这么写。
a Arrays.sort(数组名); 作用是将数组从小到大排序;
b Arrays.equals(数组1名,数组2名); 作用是判断两个数组长度和元素对应是否相等,满足这两个条件则返回true,否则返回false。
c Arrays.copyOf(数组1名,长度); 作用是复制数组1中的元素,元素的个数取决于长度。
d Arrays.fill(数组名,a,b,x); 作用是修改数组元素值:将数组从第a+1个元素一直到第b个元素都赋值为x。
二 明天要做的事情:
A 完成P103页的程序修改;
B 完善P104页的五子棋游戏;
C 尽量完成第四章的本章练习,结束第四章。
评论