Week02-Java基本语法与类库
1. 本周学习总结
--在第二周我们学习了很多的JAVA数据类型,比如整形的int,short,long,和浮点数类型float,double还有字符串类型char等等多种类型,还学习了很多种的运算符表达式,什么三目运算符啊,学习了 什么叫做自动装箱和自动拆箱。
2.书面作业
1.String-使用Eclipse关联jdk源代码
1.1 查看String对象的源代码(截图),分析String使用什么来存储字符串?
--string是使用一个叫做constant pool(常量池)的里面
1.2 分析其构造函数 public String(char value[]) 的作用?
--它的作用是构造一个字符串数组并且传入字符串数值
1.3 阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?(重点)
--当你创建了一个string的时候,系统就自动为它分配的一个地址,就好比系统给了你一个叫A瓶子,这个瓶子用来装各种字符串,当你改变要装的新的字符串的时候,系统又会给你新的一瓶子去装它,那么它就对原来的瓶子的内容没有造成影响,因此string是不可变动的。
1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?
--string和字符数组都可以处理字符串,但是string因为不可变性的存在而比字符数组好用,并且两者可以相互转化,于是乎string使用起来更舒服
2.StringBuilder
2.1 结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?
--当使用string的时候,因为他的不可变性,导致每次修改他都需要新建一对象,这就造成的多次的占用系统内存,显然这是不好的,但是StringBuilder就不一样了,他不用多次的建立对象啊,占用内存。
2.2 阅读jdk文档,查询StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?
--这个就不是很懂,我记得StringBuilder内部是使用数组来存放字符的,
3.字符串与字符串池
3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);
--
4.Wrapper(包装类)
4.1 Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;这一串命令中包含了些什么操作?
--为什么支持Integer i = 100,因为这是从J2SE 5.0后就开始提供的功能,Integer i = 100是装箱,int y = x+1拆箱,x++是赋值给x
4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?
--当然是为了便利编程啦,提高编程效率。
5.实验总结
5.1 结对编程实践
我与我的舍友健民一起完成的PTA题目,本身我们的JAVA掌握的就不是很好,因此有些题目他不会写,我会,有些我不会的他会,于是咱们就这样干了一下午,也有都不会的时候,就翻阅书籍,实在找不到解决方案就去问隔壁宿舍的学霸,只有这样才能完成。
3. 码云及PTA
3.1. 码云代码提交记录
3.2 截图题集“Java基本语法”PTA提交列表