20169214 2016-2017-2 《移动平台开发实践》第四周学习总结
20169214 2016-2017-2 《移动平台开发实践》第四周学习总结
课堂总结
- 易混淆点区分:
- 1.final/finally:final关键字会使一个类变为final,从而阻止其他类扩展该类,该类不能再派生出新的子类,不能作为父类被继承;finally用于处理异常(try...catch...finally)
- 2.throw/throws:throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开;throw关键字通常用在方法体中,并且明确抛出一个异常对象。(注意:程序在执行到throw语句时立即停止,它后面的语句都不执行。)
- 3.next/nextLine:next()方法将空格键、Tab键或Enter键均视为分隔符或结束符,所以next方法不能得到带空格的字符串;而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
- 4.SrtingBuffer/StringBuilder:都可用于字符的添加和插入,但前者中的方法是同步的,后者是异步的,且动态字符串优先使用StringBuilder。
- 5.print/println:都是java语法的标准输出,但前者不换行,后者换行。
- 代码示例:
throw/throws
next/nextLine
教材学习内容总结
- 要点1:enum是一个特殊的类,也是java.lang.Enum的子类。enum比静态final更常用,因为更安全。可以在enum上使用switch语句,并且在一个增强的for循环中使用values方法来遍历其值。注意点:enum可以独立使用,也可以作为类的一部分。enum可以有构造方法和方法,如果它有构造方法,其访问级别必须是私有的或默认的。enum定义中的常量必须在其他内容之前定义。
- 要点2:旧的API主要以Date和Calendar类为中心,新的API解决了前者使用上的一些弊端。
- 要点3:集合框架中的主要类型是java.util.Collection接口。在同步和非同步两种实现中,通常更倾向于非同步,因为更快。Map接口用于存储键/值对,java.lang.Compareble和java.util.Comparator接口使得对象可以比较且可以排序。
代码调试中的问题和解决过程
- 问题1:p131代码练习的时候,
List myList=new ArrayList;myList.add(100);
代码中add后面跟纯数字就报错。根据错误提示修改为myList.add.(int,100)
同样错误。 - 解决方法:根据错误提示,好像是jdk版本的问题。查阅资料知:jdk1.5以前的版本不支持自动装箱拆箱,因此容器就不能直接添加基本数据类型。如果不想修改jdk(change projest compliance and JRE to 1.7),还可以使用包装类
myList.add(new Integer(100))
- 问题2:p118代码练习中,
List<String> zoneList = new ArrayList<>(allZoneIds);
语句中的ArrayList<>出现错误,原因是:‘<>’operator is not allowed for soure level below 1.7。 - 解决方法:将源代码改为:
List<String> zoneList = new ArrayList<String>(allZoneIds);
错误解决。
代码托管
运行statistic脚本文件显示学习情况,如下:
说明:由于本周git push时出现问题,调整时将文件重新下载并重新上传到码云上,所以周代码量显示的是全部代码量,因而在此处没有截图。
上周考试错题总结
- String[] sa=new String[4];创建的对象数目为0.因为计算机的内存分为2类——堆和栈,而此句的sa就是在栈上产生的一个指向堆的对象,仅仅是生成了4个字符串对象的引用,而对象并未创建出来。
- jdb命令中list找不到源代码,要用use/sourcepath命令设置环境变量。
- 将22变为“22”的方法:
a.String.valueOf(22)
b.22+""
c.""+22
注意:22+33+“” 是先计算22+33,得到55后,再由55+“”=“55”;
而“”+22+33 是先算“”+22,得到字符串“22”,在计算“22”+33,与字符串相加,数值也变为字符串,故得到“2233”
学习进度条
教材学习 | 代码量 | 博客量(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 50章 | 5000行 | 20篇 | |
第一周 | 2章 | 1/1 | 初识java,并学会配置JDK、Git、IDEA | |
第二周 | 4章 | 131 | 1/2 | 了解了java的对象、类,以及继承、多态等面向对象特点 |
第三周 | 4章 | 419 | 1/3 | 学习了Java中的核心类、数组等基本用法 |
第四周 | 3章 | 约600 | 1/4 | 学习对java中枚举类型的定义、日期和时间的操作、集体框架核心类型的使用 |
参考资料
教材《Java和Android开发学习指南(第二版)(Java for Android.2nd)》
使用码云和博客园学习简易教程
Intellj IDEA 简易教程
使用JDB调试Java程序
积极主动敲代码,使用JUnit学习Java
进度条和学习过程可视化