201621123009 《Java程序设计》第二周学习总结

1、本周学习总结:

开学第二周,进一步了解了“java”,学习了“java数据类型”,字符串常量池,String的不变性、

StringBuilder:频繁对字符串进行修改。java是面向对象,连基本类型都有对应的包装类(Integer是int的包装类)

自动装箱与自动拆箱(将Integer自动转换成int);一维数组和String一样数组也是类。foreach循环的格式:for(type element:arr)

ArrayList:数组一旦确定大小,无法改变。

“==”与“equals”的不同,前者是比较两个引用类型变量存放的引用(地址)是否相等;而后者则是比较所指向的对象的内容是否相等。

数组的长度:数组名.length

起点: 数组名[0] 终点: 数组名[length-1]

2、String-使用Eclipse关联jdk源代码

1.1 查看String对象的源代码(截图)

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

该函数的作用是通过char数组,生成String字符串对象。

1.3 阅读 public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?

答:在这个函数中 String 作为一个字符数组,所以在被初始化后就不可以被修改,如果用String直接改变内容,则会出现一个新的数组,而原数组不改变,更不会消失。这就充分体现了String的不可变性。

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

答:String与字符数组可以相互转换。主要是利用了String的不可变性。

2、String Builder

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

答:主要是因为 String具有不可变性这一重要的特点,所以在频繁修改字符串时,如果使用 String 则会达不到我们修改的目的,从而时程序运行效率降低,而StringBulider则会避免产生大量的新的字符串。

2.2 阅读jdk文档,查询StringBulider的 append(char[] str)方法功能是什么?

答:功能是为了让这个数组参数中所含的字符的顺序添加到这个序列的内容,从而使这个序列的长度增加。

3、字符串与字符串池

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

String strl = "hi", str2 = “hi”; String str3 = new String(strl) System.out.println(str1==str2);
答:由字符串池的概念知,该程序中共创建了两个字符串对象,并且str1和str2的地址相同,而str3为新建字符串。

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

答:因为“==”适用于比较两个引用类型变量存放的引用(地址)是否相等,而“equals”:是用来比较所指向的对象的内容是否相等。
所以引用类型(如String、Integer)应用“equals”来比较合适。

4、Wrapper(包装类)

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

答:调用了Integer的valueOf()方法 ,形式如:public static Integer valueOf(int i),返回值为一个Integer

4.2 Java为什么有了基本数据类型,还需要其包装类呢?

答:因为Integer是int的包装类,i存放指向对象的引用,包装类中有“自动装箱”与“自动拆箱”,主要是基本数据类型与引用类型的相互自动转换。

5.2 PTA-1综合小测验

答: 使用 ``switch(choice) ``  语句进行选择性地输入`` fib、sort、search`` 。由题目的输入格式是由按行输入,所以我们需要使用`` sc.nextLine``然后把它转化为整型。sort需要字符串转化为数,使用``line.aplit( )`` 将字符串用空格拆开。调用``Arrays.sort(digits)``。search需要调用 ``Arrays.binarySearch(digits,digit)``二分搜索。

5.3 PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?

答:使用选择排序``SelectSort(RecType R[ ], int n).

5.5 (重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?

答: ArrayList 中必须要有足够多的数据,如果没有任何数据则会出现异常的现象,使用 ArrayList基本的有:添加数据list.add( ),
删除数据List.remore( ) or List.remore All( )、 清空数据list.clear( )、修改数据list.set( ) 、 以及查询数据 String ele = list.get( )

3码云及PTA

3.1码云代码提交记录

在码云的项目中,依次选择“统计-Commits”历史-设置时间段”然后搜索并截图

3.2 截图“java基本语法,PTA提交记录”:

3、3代码统计

posted @ 2017-09-22 23:01  网络1611马玉兰  阅读(194)  评论(0编辑  收藏  举报