201521123039《Java程序设计》 第二周学习总结
1.本周学习总结
答:上课老师介绍了Java基本的数据类型,需要注意的地方有:**java的整型数都为带符号数**,**byte类型范围(-127,128)太小,所以我们一般不使用byte型,byte型常与switch结构一起用**、**对于一个浮点数来说,在Java中如果不加后缀就会被默认为double型数据**、**浮点数不够精确,不能够使用与金融计算,如果想要更精确的话就使用BigDecimal型**、**变量名一定要区分大小写,声明一个变量之后必须对变量进行一个显式的初始化**、**利用final声明的常量被赋值后不能再被修改**、**String对象创建后也不能再进行修改**。
2.书面作业
(1)使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?分析String使用什么来存储字符串的?分析其构造函数public String(char value[])的实现原理?分析public String replace(char oldChar, char newChar)的实现原理,回答String的不可变性在该函数中如何体现?(重点)
(2)为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
答:因为String是不可变对象,所以每次修改字符串都是新建,非常浪费时间,而StringBuilder是可变的,利用append将修改的字符加到当前StringBuilder的末尾,效率会比String操作高很多。
(3)比较两个字符串的值是否相等?为什么不能用==直接进行比较?
答:如果直接用==比较的话,比较的是引用地址而不是字符串的值。
(4)尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
答:该程序段输出的结果是true,因为这段代码共创建了2个字符串对象。第一次创建了一个对象是str1,第二次str2并不是创建新的对象,而是str2直接引用str1,第三次又新建了一个str3对象;上题也回答了==比较的是引用地址,所以str1和str2是相等的。
(5)Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?
答:因为基本类型的值就是一个数字或者一个字符又或者是一个布尔值,引用类型的值就是指向内存空间的地址,所以100就是数值100的本身,i是指向100的内存空间地址,因此100可以赋值给i。
(6)尝试分析下面代码输出结果
Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
答:Integer的范围是(-127,128),所以第一个结果是true,第二个结果是false,因为128不在Integer范围内,所以i1和i2比较的不是128这个数值,而是它们的地址。
(7)package与javac、 java、 -classpath、 -d
在 com.ibm包中编写 StringUtil类,内有一方法
public static void foo1(){
System.out.println(StringUtil.class+" method:foo1");
}
在edu.jmu包中编写Main类,调用com.ibm.StringUtil的foo1方法
7.1 尝试用命令行进行编译并运行,截图
7.2 将生成的StringUtil.class放到d盘的lib目录下,将Main.class在d:\test目录下,尝试命令行下运行,截图。
7.3 Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。
Eclipse中源代码放在src中,class文件放在bin中。
(8)自己在这门课的目标与计划
基础:只学过c语言,以前也没有经常写代码,没有计算过写过多少行
目标:能够熟练掌握Java语言,并且可以写出一些简单的Android的小项目。
计划:坚持每天至少花半个小时在Java上,要在编程这方面多花点时间,遇到问题就上网查或者问助教、同学和老师
(9)选做:公交卡里应该还有多少钱?请分析原因
答公交卡里应该是欠费了,我觉得原因可能是公交卡里的余额范围是一定的,如果超过这个范围的最大值或者小于范围的最小值,那么公交卡的余额系统可能就会发生数据的上溢或者下溢从而导致出错。
3.使用码云管理Java代码
4.PTA实验总结
(1)问题:每次拿到题目都会忘记先分析再开始做,所以每次很容易写到一半就没了思路,然后不得不重写
解决方法:拿到题目先思考如何实现题目的要求,然后再写伪代码,最后再开始编程
(2)问题:在编写第一题的时候,因为digits数组的原因,出现了一个java.lang.nullpointerexception错误
解决方法:重新new了一个digits数组
(3)问题:拼接字符串时没有使用StringBuilder,然后程序一直得不到正确的答案
解决方法:最后使用StringBuilder然后.append的方法成功通过pta的提交
(4)问题:关于markdown的,复制粘贴图片有时候可以有时候加载不出来
解决方法:改为上传,上传比较稳定。
其他问题还在发现中。。。。。
201521123039《Java程序设计》 第二周学习总结的更多相关文章
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 201521123063 JAVA程序设计 第二周学习总结
1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...
- 2017面向对象程序设计(Java)第二周学习总结
2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结
丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...
- 201521044152<java程序设计>第一周学习总结
本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
- 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结
这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...
- 杨其菊201771010134《面向对象程序设计Java》第二周学习总结
第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...
- 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
随机推荐
- 小米wifi
场景:把小米wifi插主机上,作为热点发射器:然后使用手机搜索到这个热点,建立wifi连接 驱动:当"把小米wifi插主机上"的时候,主机可能无法识别这个设备,所以需要前往官网下载驱动 下载地址:ht ...
- 关于MySQL buffer pool的预读机制
预读机制 两种预读算法 1.线性预读 2.随机预读 对预读的监控 一.预读机制 InnoDB在I/O的优化上有个比较重要的特性为预读,预读请求是一个i/o请求,它会异步地在缓冲池中预先回迁多个页面,预 ...
- uploadify 在chrome上崩溃的解决办法
使用Uploadify进行文件上传,Chrome经常会报“喔唷,崩溃啦”的错误,见下图: 很显然,这是Chrome浏览器缓存功能,所导致的问题.从LOG里也能看到:正常的情况下,会请求文件(jquer ...
- jenkins 从git拉取代码
步骤 jenkins已集成git插件(如无,请自行下载) 1. 去到源码管理栏,选中Git: 使用http协议去获取代码 Repository URL填写http的git地址,此时未选择相应的Cred ...
- javaweb中的关于编码问题总结
1.pageEncoding="utf-8" 设置JSP编译成Servlet时使用的编码 2.Contenttype="text/html;charset=utf-8&q ...
- Android笔记: fragment简单例子
MainActivity.java public class MainActivity extends Activity { @Override protected void onCreate(Bun ...
- GUI与UI的区别
GUI 图形用户界面(**Graphical User Interface**,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面. 与早期计算机使用的命令行界面相比,图形界面对 ...
- Linux企业运维人员最常用150个命令汇总
命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) l ...
- 挖个坑,写一个Spring+SpringMVC+Mybatis的项目
想挖个坑督促自己练技术,有时候想到一个项目,大概想了一些要实现的功能,怎么实现.现在觉得自己差不多能完成QQ空间的主要功能了.准备立个牌坊,写一个类似功能的网站.并且把进度放到这里来. 初步计划实现以 ...
- pycharm中的快捷键和简单设置
PyCharm3.x默认快捷键 PyCharm Default Keymap 1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Sp ...