1. 本章学习总结
1.学习了string类;
2.了解了ArrayList的特性和使用方法;
3.学习了类名包名。
2. 书面作业
Q1.使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。
**Q2.为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String? **
用String类会降低效率,因为每次修改字符串都要新建字符串,再删除之前的字符串,
而用StringBuilder则会快许多,因为他是在字符串末尾进行操作,所以当频繁的对字
符串修改时用StringBuilder而不是用String。
Q3.比较两个字符串的值是否相等?为什么不能用==直接进行比较?
当对两个字符串进行比较时,应该用equals();,如果用==的话,表示的是两个字
符串是否引用同一个地址,==只能比较两个变量的值。
Q4.尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
输出结果为true,创建了两个字符串对象。
在字符串池中找"hi",如果没有就建立字符串"hi"对象,str1与str2都指向其地址,这是一;
二:str3在字符串池外面创建了新的字符串对象。
**Q5.Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i **
自动装箱、拆箱的内幕"Integer i = 100;"实际上会使用Integer.valueOf()来建立Integer实例。
**Q6.尝试分析下面代码输出结果 **
Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
输出结果为true和false;
书P94有详细解释,IntegerCache范围是-128~127。
**Q7.package与javac、 java、 -classpath、 -d
在 com.ibm包中编写 StringUtil类,内有一方法 **
public static void foo1(){
System.out.println(StringUtil.class+" method:foo1");
}
在edu.jmu包中编写Main类,调用com.ibm.StringUtil的foo1方法
7.1 尝试用命令行进行编译并运行,截图
7.2 将生成的StringUtil.class放到d:\lib正确的目录结构下,将Main.class在d:\test正确的目录结构,尝试在命令行下运行,并截图。
这个我暂时没弄出来,现在有紧急事件,在外面,等回来一定弄懂。
7.3 Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。
源代码放在src里面,class放在bin文件夹中。
**Q8.自己在这门课的目标与计划 **
8.1请描述一下你的技术基础(会什么语言,都写了多少行代码)
C语言,C++之前都有学,不过我学习不好,不是很会;
Java现在刚接触,感觉要学习的东西还有很多;
代码其实写的不多,不过有过课设,加起来应该有几千行吧。
8.2一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
一周三天吧,大概八百行代码;
上课听讲,完成老师作业,百度,问柯柯和嘉廉。
8.3关于这门课的smart目标
SMART:
Specific:具体的,无二义性的,能描述 “成功” 是什么样的。
Motivating: 目标能激发对目标的兴趣么?实现目标对学生来说说意味着什么?他们会为之自豪么?
Achievable: 能做到么?是挟泰山以超北海?还是把墙角一堆砖头搬走?
Relevant: 和学生来到大学的大方向、目标吻合
Trackable: 能衡量进度的,和有些资料提到的 Measurable 相似。
其实我没有什么目标,虽然这样很不好,可是这是大实话。我就希望现在的自己能够多花点时间在学习上。