1.本周学习总结
(1)基本数据类型java特有:boolean(布尔型)结果只有true或false。
(2)引用数据类型:存放指向对象的引用
(3)包装类:在包装类中除了int,char 其余的包装类都是基本类型的首字母大写 ,int 的包装类为Inegerchar的包装类为Character,包装类就是存放指向对象的引用。包装类与基本的数据类型转换要经过拆箱与装箱像:Integer a=100;为自动装箱 int b=a;就是自动拆箱。
(4)StringBuilderd,多维数组的使用及动态数组的运用
2.书面作业
1.String-使用Eclipse关联jbk源代码
1.1查看string对象的源代码(截图),String啊好i用什么来存储字符串?
答:String是使用char数组来储存字符串的。
1.2分析其构造函数public String(char value[])的作用?
this.value = Arrays.copyOf(value, value.length);中Arrays.copyOf是传回的数组是新的数组对象,所以您改变传回数组中的元素值,也不会影响原来的数组。
1.3阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?
在oldChar的内容进行修改,并不是存储在原先的数组中而是创建了一个新的newChar进行存储与原先的数组并没有发生改变,这就是String的不变性。
1.4简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?
我觉得String与字符数组的最大区别在与数组是要有定义的数组大小的length,而String则不需要。对于String来说它的不变性。在改变String就要创建新的String而字符数组就会相对较为灵活。
2.StringBuilder
2.1 结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?
对于String来说频繁的修改就要频繁的创建新的字符串,在少量的情况下它与StringBuilder并没有太多的差别,但是在过多的情况下String就会造成时延变得很久运用StringBuilder就不会有这种情况。
2.2 阅读jdk文档,查询StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?
StringBuilder的append(char[] str)方法功能是将 char 数组参数的字符串表示形式追加到此序列StringBuilder内部使用的应该是字符数组来存储字符,将 char 数组 str 中从索引 offset 开始的字符按顺序追加到此序列。此字符的长度增加 len。
参考了jbk的内容
字符串与字符串池
3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);
str1与str2都指向在字符池的“hi”,里输出的结果是ture,共创建了两个字符串
3.2 重点:对基本类型我们可以使用==比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用==比较?应该怎样比较他们的值是否相等呢?
在引用类型中“==”是比较两个引用变量的地址是否相同因此要比较内容就要使用equals来进行比较而在基础类型中是可以用“==”进行比较大小。
4.Wrapper(包装类)
4.1 Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y =x+1;x++;这一串命令中包含了些什么操作?
这个赋值过程中包含了自动装箱,<1>赋值并自动装箱<2>自动拆箱并赋值<3>基础数据自增。
4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?
我们知道Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。
不是特别理解包装类这是百度的回答
5.实验总结
5.1结对编程
合作对象:吴俊杰
对于编程代码讨论会有些思维不同而产生的碰撞,我们会比较开始讨论但是比较容易跑偏主题进入不是我们所要讨论的目的所以有时候1+1会小于2。
附图: