201621123026 《JAVA程序设计》第二周学习总结

Week02-Java基本语法与类库

1. 本周学习总结

  • java的基本类型
  • String类的基本运用

2. 书面作业

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

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

String是通过char[]数组来存储字符串
1.2 分析其构造函数public String(char value[])的作用?
作用是将一个char型的数组转换成字符串对象
1.3 阅读publi String replace{char oldChar, char newChar}方法的代码,回答String的不可变形在该函数中如何体现?
根据该函数的返回值可以知道,该函数是以新创的String对原数组进行操作,而不是从更改原来的数组,从而体现String的不变形。
1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?
String作为一个类,作为一个对象比字符数组的可操作性更强。

2. StringBuilder

1. 结合PTA -2(StringBuilder),说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?

因为String是不可变的类型,每次对String进行操作都要赋予新的内存空间,频繁更改后会占用许多内存。StringBuilder是对对象本体操作,所以在空间利用率上更为高效。

2. StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法是,是如何实现添加字符的操作?

append是对字符串进行拼接。StringBuilder使用char数组存放字符。添加字符时,对原先对象所在内存进行扩展,作为新的字符的存放位置进行拼接。

3. 字符串与字符串池

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

String str1 ="hi", str2="hi"; String str3 = new String(str1) ; System.out.println(str1==str2);

结果为true,str1和str2同时指向同一个对象,但是是创建了两个字符串对象。

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

因为引用类型并不存放其所指向的对象的值,引用类型只是一个指向某个字符的对象,本身没有值所以无法比较。使用java的自动拆箱,将引用类型拆成对应的基本类型就可以进行比较了。

4. Wrapper(包装类)

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

因为这里是使用了自动装箱的简便形式,中间包含了将100包装成引用类型。这串命令中包含了自动装箱和自动拆箱。

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

包装类便于对对象进行操作。

5. 实验总结

  1. PTA综合小测验
    这道题用switch选择各种不同的功能,fib调用子函数运用递归返回并打印对应个数的菲波那切数列,sort将输入得数字用Arrays.sort(a)排序后打印,search调用函数Arrays.binarySearch(b,i),getBirthDate用substring抽取身份证生日日期。

  2. PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?
    根据输入用switch选择sort1 or sort2 ,sort1 用substring截取生日并执行串的拼接,sort2 使用a[j].substring(6,14)).compareTo(a[j+1].substring(6,14)进行比较。

  3. PTA-4动态数组
    新建一个二维数组,在二维for循环里赋予值。

  4. PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?
    数组一旦确定了大小就无法改变,ArrayList可以改变大小更为方便,不过只能存放引用数据类型。

3. 码云及PTA

3.1 码云代码提交记录

3.2 截图题集“Java基本语法”PTA提交列表

3.3使用老师发的jar程序统计每周的代码量

posted @ 2017-09-23 20:56  数构易中天  阅读(163)  评论(1编辑  收藏  举报