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
进度条和学习过程可视化

posted on 2017-03-26 16:51  20169214姚静  阅读(160)  评论(9编辑  收藏  举报