学号 2016-2017-2 《Java程序设计》第X周学习总结
教材学习内容总结
Arrays:用于操作数组的工具类。
里面都是静态方法。
asList:将数组变成list集合。
把数组变成集合的好处:可以使用集合的思想来操作数组中的元素。
将数组变成集合的时候不可以使用集合的增删方法,因为数组的长度是固定的。
runtime对象:
该类并没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的。
发现该类中海油费静态方法,说明该类肯定提供了方法获取本类对象,而且方法是静态的,并且返回值的类型是本类类型。
由这个特点可以看出来该类使用了单例设计模式完成
时间的度量: 格林威治时间,简称GMT时间,由观察太阳而得来;世界时,UT;国际原子时,TAI;世界协调时间,UTC;Unix时间,以1970年1月1日00:00:00为起点而经过的秒数,不考虑闰秒修正;epoch,以1970年1月1日00:00:00为起点而经过的毫秒数。
Date :使用Date实例的各getTime可以获得epoch毫秒数,**Data实例只用来当做时间轴上的某一瞬间;利用DataFormat可以对字符串格式进行处理,分别有GetDateInstance、GetTimeInstance、GetDateTimeInstance
Date():分配Date对象并且初始化此对象,以表示分配到它的时间(精确到毫秒)。
Date(long date):分配Date对象并且初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”即1970年1月1日0点GMT)以来的制定毫秒数。
DateFormat: java.text.DateFormat 复责字符串时间格式处理,DataFormat是个抽象类,其操作类为java.text.SimpleDataFormat,getDataInstance()、getTimeInstance()、getDataTimeInstance()等静态用法;可以直接构建SimpleDataFormat实例,或是使用DataFormat的;直接构建SimpleDateFormat,可以自定义字符串格式 parse方法可以将指定的字符串剖析Date实例
Calendar: Calendar实例取得某个时间日期信息,或者对时间日期进行操作;Calendar是个抽象类,java.util.GregorianCalendar是其子类,通过Calendar的getInstance()取得的Calendar实例,默认就是取得GregorianCalendar实例;比较两个Calendar的时间日期先后,使用after()或before()方法;取得Calendar实例后,可以取得年月日信息,可以进行设定,可以进行运算来改变。
TimeZone :TimeZone的getdefault可以取得默认时区的信息;Calender在调用getInstance()时可以指定Timezone,如果已经取得Calender实例,可以通过setTimeZone()的方法设定时区。
机器时间观点的API: Date实例只代表机器观点的时间信息;使用Instant的静态方法now()取得Instant实例,ofEpochMilli()可以指定Java epoch毫秒数,ofEpochSecod()指定秒数;取得Instant实例后,可以使用plusSecond()、plusMillis()、plusNanos()、minusSeconds()、minusMillis()、MinusNanos()做时间轴上的运算,返回新的Instant实例,代表运算后的时间。
人类时间观点的API: Date实例只代表机器观点的时间信息;在上面那些类的基础上可以使用ZonedDateTime等来进行补充;Month是enum类型,取得代表月份的数字,取得月份要通过getValue()方法,而不是使用oridinal()方法。
教材学习中的问题和解决过程
- 问题1:ISO 8601如何考虑时区的变化来更正时间呢
- 问题1解决方案:用了一下systracer进行了两次快照,发现java运行时网络端口是发生过变化的,但是当时开着其他应用也不好确定一定是java使得端口变化,也可能是计算机里面自己有一个时间一直在走,这样就会记录下时间。
代码调试中的问题和解决过程
-
问题1:
如何在java程序里实现两个事件的互换
-
问题1解决方案:
代码托管
上周考试错题总结
- 下面哪条命令可以把 f1.txt 复制为 f2.txt ?
A .
cp f1.txt f2.txt
B .
copy f1.txt f2.txt
C .
cat f1.txt > f2.tx
D .
cp f1.txt | f2.tx
E .
copy f1.txt | f2.tx
这必须AC啊,但是当时没看到是多选 - 下面代码中共有()个线程?
public class ThreadTest {
public static void main(String args[]){
MyThread myThread =new MyThread();
Thread t1=new Thread(myThread);
Thread t2=new Thread(myThread);
t1.start();
t2.start();
}
}
class MyThread extends Thread {
...
}
A .1
B .2
C .3
D .4
这个题当时没有考虑到main主函数也是一个线程,所以一共是三个线程。
评分标准
- 正确使用Markdown语法(加1分):
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程, 一个问题加1分
- 代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的(加2分)
- 其他加分:
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 有动手写新代码的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
点评模板:
-
基于评分标准,我给本博客打分:10分。
点评过的同学博客和代码
- 本周结对学习情况
-
结对照片
-
结对学习内容
- 主要是一起研究了以下实验一怎么改进代码
- 上周博客互评情况
- 20155230:http://www.cnblogs.com/J1n233/p/6659077.html
- 20155239:http://www.cnblogs.com/lyx1996/p/6658012.html
- 20155215:http://www.cnblogs.com/xuanyan/p/6650925.html
- 20155306:http://www.cnblogs.com/0831j/p/6659937.html
- 20145202:http://www.cnblogs.com/tuolemi/p/6657143.html
- 20155321:http://www.cnblogs.com/rafell/p/6659115.html
其他(感悟、思考等,可选)
学习感受:我感觉这一张比较简单,语法不是很多,虽然在c里面没有接受过这些语法的学习但是在逻辑上这些语法并没有什么太大的难度,只要能够做到合理的调度九可以了。
学习进度条
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:20小时
-
实际学习时间:16小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)