201621123017《java程序设计》第二周学习总结

1. 本周学习总结

学习了些引用类型还有数组。深深的感受到这个课程真难,不好学

2. 书面作业

1.String-使用Eclipse关联jdk源代码

1.1 查看String对象的源代码(截图),分析String使用什么来存储字符串?
1.2 分析其构造函数public String(char value[])的作用?
1.3 阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?(重点)
1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?
参考资料:

1.1Eclipse 如何查看jdk源码
string是个字符数组,并且是final类型,用于存储字符串内容。
1.2 传入字符数组 生成string
1.3 替换字符时
1.4 类比字符串更方便

2.StringBuilder

2.1 结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?
2.2 阅读jdk文档,查询StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?

2.1 string具有不可变性,一直修改会占用很多空间,所以 用stringBuilder比较好
2.2

ava.lang.StringBuffer.append(char[] str) 方法追加char数组,即str参数为这个序列的字符串表示形式。数组参数的字符追加的顺序到这个序列的内容。这个序列以该参数的长度增加它的长度。

字符数组,输入后换成字符数组再添加。

3.字符串与字符串池

3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1str2);
3.2 重点:对基本类型我们可以使用
比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用==比较?应该怎样比较他们的值是否相等呢?

3.1 str1创立了一个对象,而str2也是hi 所以并没有再创建,str3则是再创建了一个对象 所以有两个对象并且是true。
3.2==比较的是首地址,而引用类型会出现内容一样而地址不同。
用equals比较就ok

4.Wrapper(包装类)

4.1 Integer i ==100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;这一串命令中包含了些什么操作?
4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?

4.1
Integer i ==100 自动装箱,基本类型->Integer类型
自动装箱; 先自动装箱变成int,再拆箱再装箱变回Integer类型
4.2
包装类可以更加方便,对付的问题也更多种

5.实验总结

posted @ 2017-09-23 18:56  网络李锦桂  阅读(140)  评论(1编辑  收藏  举报