20175221 2018-2019-2 《Java程序设计》第二周学习总结

  • 20175221   《Java程序设计》第2周学习总结

教材学习内容总结

教材方面

  • 本周学习了第二章的“基本数据类型与数组”的内容,以及粗略地看了一下第三章“运算符、表达式和语句”的内容。
  • 由于第二.三章大部分内容都已经在c语言的学习过程中懂了,所以这一次的学习相对来说较为轻松,也节省了很多时间。
  • 但java和c即使是相同的内容,也是会有一些不一样的表示方法,例如:
  • java中的char型数据一定是无符号的,而且不允许使用unsigned来修饰所声明的char型变量。
  • java允许使用int型变量的值指定数组的元素的个数。
  • ......
  • 而且java有很多细节需要去注意,不然一不小心就会犯错,从而导致程序编译失败,例如:
  • float型常量后面必须有后缀f或F
  • switch表达式中的值不能是long类型
  • ......
  • 所以我觉得,通过类比于c的学习,java的进度还是很快的。
  • 这期间有一个失误,我的git commit 注释没有做好,所以导致总截图看起来比较乱,这是我的失误,下周开始会改正的

其他方面

IDEA的安装

  • 首先进入https://account.jetbrains.com/login,注册一个jetbrains账号
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • 然后进入https://www.jetbrains.com/zh/student/,下载Toolbox APP的tar版(注意!我这里是在虚拟机上操作的,所以下的是Linux版的压缩包。如果是在windows上操作,就选择相对应的版本下载就行了)

  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • 下载完后,运行Toolbox App,并安装Intellj IDEA Ultimate
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • 安装完后一路next,之后停在登录界面,点击evaluate for free试用一个月,就可以开始使用IDEA了

后续工作

  • 只是试用还是不够的,我们接下来申请学生免费使用权。进入https://www.jetbrains.com/shop/eform/students?_st=22h9vvympu。根据提示填写信息,并上传照片,如图勾选。
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • IDEA的使用

  • 把老师给的快捷键过一遍,首先是「Alt+1」显示项目视图
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • 然后是在代码编辑窗口中输入「psvm」,然后按「tab」,IDEA会帮我们生成main方法
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • 接着代码编辑窗口中输入「sout」,然后按「tab」,IDEA会帮我们生成System.out.println()
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • 至此,可以慢慢感觉到:IDEA的方便之处,感觉是更智能化,一个tab补全很多东西,可以节省很多时间。

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

  • 问题1:教材17页,Unicode只有65536个字符存放,真的能表示完世界上所有的字符吗?

  • 问题1解决方案:上网查阅资料得知:

  • 2的16次方即65536给初学计算机的人一般会留下比较深刻的印象。
  • Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,它为世界上目前已存在的所有文字和符号以及将来可能出
    现的字符都指定(或者说预留)了一个唯一的数字编码,但它并不是具体的实施方式。
  • 也就是说Unicode中的数字编码和电脑上的文字编码是不能直接划等号的。UTF-8、UTF-16和UTF-32才是具体的实施方式,其中UTF-8
    用8位的倍数来表示一个字符,也就是说在UTF-8编码格式中,一个字符可以是8位(一个字节),同理,UTF-16则可以是16位(两个字
    节)、32位(四个字节),而UTF-32则所有字符都是32位(即四个字节)的。
  • 事实上,用三个字节表示一个字符的容量(16777216)已经远远超过Unicode标准中的最大容量(17*65536=1114112)了。所以足够
    了,另外中文的unicode码的范围4e00-9fa5
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • 问题2:教材23页的例子3,import那行是什么意思?它和后边章节的package有什么关系

  • 问题2解决方案:

  • 上网查阅资料得知:

  • package功能是将一些类打包至某个目录下,import是引出包中的类。
  • 书上给出的java.的包已经默认package过了,也就是打包了, 类似c的头文件。
  • 所以我们在引用的时候要点名引用的是哪个目录下的类,import引出就行了。
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结
  • 问题3:教材43页,switch表达式中的值为什么不能是long类型

  • 问题3解决方案:上网查阅资料得知:

  • swtich()里面必须是int和enum--即枚举类型。

  • short、 char 或者 byte他会自动转换为int的。

  • long不能自动转换为int,因为long比int范围大,可能会丢失精度。
  • 20175221 2018-2019-2 《Java程序设计》第二周学习总结

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

  • 问题1: 175221.java文件编写完以后,编译很多次都没有出来175221.class文件

  • 问题1解决方案:上网查阅资料得知,问题出在,给文件起名称不能以数字开头

  • (1)第一个字符必须是字母(不分大小写)或下划线(_);
  • (2)后跟字母(不分大小写)、下划线(_)或数字组成;
  • (3)标识符中的大小写字母有区别。
  • (4)不能与c编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名。

    20175221 2018-2019-2 《Java程序设计》第二周学习总结

代码托管(https://gitee.com/zxjacdl/zxj175221/tree/master)

20175221 2018-2019-2 《Java程序设计》第二周学习总结

statistics.sh脚本的运行结果截图

上周考试错题总结

错题1

如果在Main.java中撰写以下的程序代码:

public class Main {

public static void main(string[] args) {

System.out.println("Hello World");

}

}

以下描述何者正确?

A  . 执行时显示Hello World

B  . 执行时出现NoClassDefFoundError

C  . 执行时出现出现找不到主要方法的错误

D  . 编译失败

选D。有两个错误:

1.“String”的S要大写

2.“【】”应该是在arg数组名称后边,而不是在String字符串后边。

结对及互评

点评过的同学博客和代码

  • 上周博客互评情况(只要链接,具体点评放相应博客下)

    • 20175211(https://www.cnblogs.com/20175211lyz/p/10461331.html)
    • 20175206(https://www.cnblogs.com/ldc175206/p/10468537.html)
    • 20175313(https://www.cnblogs.com/xiannvyeye/p/10461713.html)

其他(感悟、思考等,可选)

这是学习java的第二周,也是第二次写博客。

经过第一周的熟悉之后,第二周托管代码的任务很快就完成了。

紧接着是观看教材配套视频和做课后作业,以及一些其他任务。

目前java的学习任务可以说是有条不紊地进行着,相信我能够认真并坚持下去

学习进度条(三月份)

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 1000行 4篇 50小时  
第一周 13/13 1/1 12/12  
第二周 309/322 1/2 13/25 敲代码的量有了明显的提升
第三周 0/322 0/2 0/25  
第四周 0/322 0/2 0/25  

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:12小时

  • 实际学习时间:13小时

  • 改进情况:这一周算是真正开始了java学习,敲代码的量有了明显的提升,我觉得这是一个很大的进步,希望我能在后边的学习继续保持下去。

(有空多看看现代软件工程 课件软件工程师能力自我评价表)

参考资料

上一篇:web app 开发必不可少的滑动插件 Flipsnap


下一篇:SpringMVC源码分析--文件上传