20155316 2016-2017-2 《Java程序设计》第2周学习总结

教材学习内容总结

  1. 学习主要内容:基本类型介绍及流程控制简介
  2. 关键点:关键记住JAVA的大体框架,可以类比C语言结合着记。相较于C不同且值得关注的主要信息有:
    1. 基本类型的不同:byte、boolean、char;
    2. print、println、printf的区别;
    3. 类型转换(默认的double与int等)

教材学习中的问题和解决过程

第三章

  • 1.byte与Byte、int与Integer、char与Character各自有什么区别?在教材上P55的关于输出不同类型可储存数值范围的.java文件,对于int、char的可储存数值最大(小)值分别是Integer.MAX_VALUE(Integer.MIN_VALUE)和Character.MAX_VALUE(Character.MIN_VALUE),“.”点号前面的是Integer和Character,这与Integer类型和Character类型有什么关系吗?
  • “Byte、Short、Integer、Long、Float、Double、Character、Boolean都是java.lang包下的类,这些类是基本类型的包裹器(Wrapper)MAX_VALUE、MIN_VALUE、MIN_EXPONENT、MAX_EXPONENT、TRUE、FALSE等都是这些类上的静态(static)成员”......
  • 2.“在JAVA的世界中,并非每个东西都抽象化为对象,你还是要面对系统的一些特性。例如你还是要意会到内存长度有限的问题”,抽象化为对象会怎么样?
  • 3.%n与\n的区别?
  • %n是格式控制符号,表示输出平台特定的换行符号,如windows下会置换为“\r\n";\n是忽略符号,表示换行。
  • 4.关于类型转换,什么时候可以用float PI=(float) 3.14;这种形式,什么时候用float PI=3.14F"这种形式?
  • 两种方式判断:
  • (1)当是长字节类型的Cast到短字节类型的时候可以用第一种形式,其他时候不可以,第二种形式是通用的(一般情况下)。
  • (2)当编译出现“possible loss of precision”时可用第一、二种形式;出现形如“integer number too large”时可用第一种形式。

代码调试中的问题和解决过程

  • 1.看到书上对%h的解释后不太理解,根据书上说的“Integer.toHexString(arg.hashCode())得到的输出结果,如果arg是null,则输出null,也常用于想得到十六进制格式输出”,想测试一下%h会输出什么,以下为尝试过程
  • 想测试下Character.MIN_VALUE和Character.MAX_VALUE用格式%h输出的是16进制还是Integer.toHexString(arg.hashCode())得到的输出结果,就将%h改成%d。结果改了并编译程序以后,运行时出现了这个问题:
  • 说是用错了格式,这说明这里的格式%h输出的不是16进制,那么就应该是Integer.toHexString(arg.hashCode())得到的输出结果,这正是我想理解的部分,又因为用%h格式输出的结果是0~ffff,便尝试着把%h改成%c试试:
  • 发现没有出现正常的输出,再从Integer.toHexString(arg.hashCode())本身英文部分的分析猜想,这里%h的输出与16进制(hex)以及字符串(string)有一定的关联,查资料知:Integer.toHexString(arg.hashCode())返回的是某种格式化后的字符串

代码托管

  • 代码提交过程截图:
    • 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图
  • 代码量截图:
    • 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图

上周考试错题总结

  1. 第二周第19题:在src目录中编译图2.23中Main.java代码的命令是【我现在的答案】(javac -cp classes -d classes cc/openhome/Main.java)【参考答案】(javac -d . Main.java
  2. 第二周第20题,教材P50第3题,编译可得结果

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 45/45 1/1 15/15
第二周 288/333 2/3 21/31
  • 计划学习时间:20小时

  • 实际学习时间:21小时

  • 改进情况:争取每天都能多学一点

参考资料

posted @ 2017-03-05 21:02  protectmonarch  阅读(182)  评论(4编辑  收藏  举报