---恢复内容开始---
1. 本周学习总结
这周我们学习了两种不同的数据类型,一种为基本数据类型,一种为引用数据类型。其中布尔型是Java特有的数据类型,它取值只有true和false。引用类型类似于c中的指针。其中字符串类型string是最常用引用类型之一。这两种数据类型相对于c中能更好的处理问题。
2. 书面作业
String-使用Eclipse关联jdk源代码
1.1 查看String对象的源代码(截图),分析String使用什么来存储字符串?
##
1.2 分析其构造函数public String(char value[])的作用?
##该函数的作用是通过char数组,生成String字符串对象,接口中的参数是一个char数组。
1.3 阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?(重点)
##string在这个函数中通过使用字符数组来存储,一旦创建后内容就无法改变,如果直接改变string内容,则会出现新的一个字符数组。
1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?
##string类具有不可变形,用string更直接更方便。
2.1 结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?
##StringBuilde的内部实现方式和String不同,StringBuilde在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuilde要更加适合一些。
2.2 阅读jdk文档,查询StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?
##将字符数组序列有序的附加在StringBuilder类中;使用动态数组来存放字符。
字符串与字符串池
3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);
根据字符串池的概念,我们可以知道该程序创建了str1 ,str2两个字符串对象,并且地址相同,而str3为新的字符串对象。
3.2 重点:对基本类型我们可以使用==比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用==比较?应该怎样比较他们的值是否相等呢?
因为==是用来判断两个引用类型变量存放的地址是否相等;用equal来比较。
Wrapper(包装类)
4.1 Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;这一串命令中包含了些什么操作?
## 因为这是Java中的自动装箱功能;先将100装箱为integer类型,再将100拆箱为int类型。
4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?
## 出现了自动拆箱和自动装箱,大大的缩减了繁琐的代码,更加方便了成员员的编程。
实验总结
5.1 结对编程实践:使用结对编程的方式完成本周编程题目,即两个人同时合作完成实验题目(可1题也可多题,但最好是是两个人都没做过的题目)。推荐实施步骤:1.两个人坐在同一台电脑屏幕前判题,讨论、决定大概由谁先写。2. 1个人先编5分钟(自己商量多少分钟),同时另一个人观察对方编程或者查相关资料。3. 5分钟后,简单讨论后,换另外一个人继续编(请一定要换,另一个人如果无法接受应由第一个人讲解大概思路以方便其接受)。并完成如下作业:a.描述结对队友姓名、结对过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。b.结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会(如是否有利于自己编程水平的提高、是否有利于开拓编程思路)。
## 额,,首先每个人对编程的能力不一样,思路不同,这次的结对编程,充分感受到了别人的能力是多么强。![1121161-20170923193609056-464237381.png](https://images2017.cnblogs.com/blog/1121161/201709/1121161-20170923193609056-464237381.png)
5.2 PTA-1综合小测验
##用switch语句输入,将字符转换为数,然后使用sort,
5.3 PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?
##3此题采用选择排序,运用了string类,不清楚
5.4 PTA-4动态数组
# 构建一个二维数组来存放数据,采用for循环将数据一个一个存放
5.5 (重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?
#ArrayList可以在任意位置插入和删除项,并且对数据能执行很多的操作,添加数据,删除数据,清空数据等。
3. 码云及PTA
3.1. 码云代码提交记录
![1121161-20170923201320306-220225418.png](https://images2017.cnblogs.com/blog/1121161/201709/1121161-20170923201320306-220225418.png)
3.2 截图题集“Java基本语法”PTA提交列表
3.3 使用老师发的jar程序统计每周的代码量
行数 | 新增行数 | 文件数 | 新增文件数 |
---|---|---|---|
15 | 15 | 210 | 210 |