20155316 2016-2017-2 《Java程序设计》第2周学习总结
教材学习内容总结
- 学习主要内容:基本类型介绍及流程控制简介
- 关键点:关键记住JAVA的大体框架,可以类比C语言结合着记。相较于C不同且值得关注的主要信息有:
- 基本类型的不同:byte、boolean、char;
- print、println、printf的区别;
- 类型转换(默认的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 并截图
上周考试错题总结
- 第二周第19题:在src目录中编译图2.23中Main.java代码的命令是【我现在的答案】(
javac -cp classes -d classes cc/openhome/Main.java
)【参考答案】(javac -d . Main.java
) - 第二周第20题,教材P50第3题,编译可得结果
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 45/45 | 1/1 | 15/15 | |
第二周 | 288/333 | 2/3 | 21/31 |
-
计划学习时间:20小时
-
实际学习时间:21小时
-
改进情况:争取每天都能多学一点