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

1.本周学习总结

学习了java的数据类型,有包装类和数组,Array类的一些用法,比如打印二维数组。但是基础不是很好,还是得慢慢的补前面的一些知识。唉

2.书面作业

String-使用Eclipse关联jdk源代码

1.1 查看String对象的源代码(截图),分析String使用什么来存储字符串?、

使用char数组存储字符串

1.2 分析其构造函数public String(char value[])的作用?

生成String字符串对象

1.3 阅读`public String replace(char oldChar, char

newChar)方法的代码,回答String`的不可变性在该函数中如何体现?(重点)
新的字符串引用发生了改变,oldchar和newchar本身的字符未发生改变

1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?

String类可以和字符数组进行相互转换,可以提高速度

StringBuilder

2.1

结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?
在频繁修改字符串的时候,String是不可变的,如果再用String会占用大量内存空间,浪费时间。

2.2 阅读jdk文档,查询StringBuilderappend(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilderappend(char[] str)方法时,是如何实现添加字符的操作?字符串与字符串池

StringBuilder内部使用 char[] value 来存放字符。字符数组参数按顺序依次追加该序列的内容,该参数的长度为序列的长度增加的长度。

3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:

String str1 ="hi", str2="hi"; String str3 = new String(str1) ``System.out.println(str1==str2);
2个字符串对象,str1和str2在字符串池中存放的地址一样,str3新建了一个字符串对象

3.2 重点:对基本类型我们可以使用比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用比较?应该怎样比较他们的值是否相等呢?

因为要看地址是不是相同的
应该用equals()判断引用类型

Wrapper(包装类)

4.1 I`nteger i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;这一串命令中包含了些什么操作?

integer有对目标进行赋值的用法,这一串命令包含了赋值和对目标的算法运算。

4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?

包装类方法丰富,可以实现类型之间的转化
实验总结

5.1 结对编程实践:使用结对编程的方式完成本周编程题目,即两个人同时合作完成实验题目(可1题也可多题,但最好是是两个人都没做过的题目)。推荐实施步骤:1.两个人坐在同一台电脑屏幕前判题,讨论、决定大概由谁先写。2. 1个人先编5分钟(自己商量多少分钟),同时另一个人观察对方编程或者查相关资料。3. 5分钟后,简单讨论后,换另外一个人继续编(请一定要换,另一个人如果无法接受应由第一个人讲解大概思路以方便其接受)。并完成如下作业:a.描述结对队友姓名、结对过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。b.结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会(如是否有利于自己编程水平的提高、是否有利于开拓编程思路)。

唉 编程水平很差,还达不到可以和别人讨论的水平,也是难受。现在在补先前的基础,希望能慢慢的赶上来。

posted @ 2017-09-23 19:22  陈江铭  阅读(155)  评论(1编辑  收藏  举报