Week02-Java基本语法与类库
1.本周学习总结
关键词:基本语法,数据类型,包装类
本周讲了Java的基本数据类型和包装类:
数据类型主要分为八类(
byte
,short
,int
,long
,double
,float
,char
,boolean
);-
包装类可以将基本数据类型转换为对象进行处理。
2.书面作业
1.String-使用Eclipse关联jdk源代码
1.1查看String对象的源代码(截图),分析String使用什么来存储字符串?
2.StringBuilder
2.1 结合PTA 5-2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?
参照1.3问题,正因为字符串的不可改变性,用StrignBuilder方法频繁修改字符串的话会造成大量内存等系统开销。
2.2阅读jdk文档,查询StringBuilder的append(char[] str)
方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)
方法时,是如何实现添加字符的操作?
把字符数组按顺序添加到对象中;
字符串缓冲区中;
将传入进去的字符转换成字符数组。
3.字符串与字符串池
3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象
String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);
输出结果为1;
创建了两个字符串对象;
3.2 重点:对基本类型我们可以使用比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用比较?应该怎样比较他们的值是否相等呢?
字符串中比较运算符”==”比较的是两个字符串的内存地址,但是即使两个字符串的内容相同,但内存地址也可能不同。
4.Wrapper(包装类)
4.1Integer i = 100;
//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;
这一串命令中包含了些什么操作?
自动装箱可以将基本数据类型自动转换为对应的对象;
先装箱将100转换为Integer类型,然后自动拆箱将Integer类型转换为int类型。
4.2Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢
为了可以方便的实现基本数据类型之间的转换,这也正是包装类的好处。
5.实验总结
5.1 结对编程实践:使用结对编程的方式完成本周编程题目,即两个人同时合作完成实验题目(可1题也可多题,但最好是是两个人都没做过的题目)。推荐实施步骤:1.两个人坐在同一台电脑屏幕前判题,讨论、决定大概由谁先写。2. 1个人先编5分钟(自己商量多少分钟),同时另一个人观察对方编程或者查相关资料。3. 5分钟后,简单讨论后,换另外一个人继续编(请一定要换,另一个人如果无法接受应由第一个人讲解大概思路以方便其接受)。并完成如下作业:a.描述结对队友姓名、结对过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。b.结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会(如是否有利于自己编程水平的提高、是否有利于开拓编程思路)
结对队友姓名:
结对题目:
5.2PTA-1综合小测验
5.3PTA-3身份证排序。并回答:使用sort2
方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?
5.4PTA-4动态数组
5.5(重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?
3. 码云及PTA
3.1 码云代码提交记录
- 在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图