201521123113 《Java程序设计》第2周学习总结
1.本周学习总结
- 学习了各种java数据类型以及各种运算符的使用
- string类之所以好用是因为这是人可以看得懂的类型,操作简便
- Scanner扫描器与标准输出输入用法上的不同,Scanner较标准输入输出来说比较简单易懂且好用
- java中的顺序、选择、循环结构都跟c或c++的流程一样,没有多少出入,其中for (变量类型 变量名称 : 对象)等同于c中的for循环
- 学习了一维,二维数组的用法
- Arrays工具类的用法
- 学习了包是完全限定类名,如何用cmd对带有包名的文件进行编译
2.书面作业
Q1.使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。
Q2.为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
- StringBuuilder是在字符串末尾操作,String在操作时先创一个内存储存字符串再把原来的字符串删除,如果要大量拼接字符串的话,String较StringBuuilder浪费空间时间。
Q3.比较两个字符串的值是否相等?为什么不能用==直接进行比较?
- 因为字符串的变量名代表字符串的首地址的指针,不是字符串的内容,用==号比较的话只能比较是否是同一个对象,结果只能是false或ture。
Q4.尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
- str1和str2在字符串池分别创建了一个"hi"的对象,str3在字符串池中创建了另一个对象为str1的对象,总共创建了两个对象。
- 输出结果为true。
Q5.Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i
- Integer i = 100会自动转换成Integer i = new Integer(100),实际上调用的是Integer.valueOf(int i),Integer数在-127到128之间。
Q6.尝试分析下面代码输出结果
Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
- 第一个i1和i2的赋值在-128~127之间,是同一个对象,结果为true;
- 第二个i1和i2的赋值为128,越界了,所以是不同对象,结果为false。
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.3Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。
- 源代码放在src文件夹中,class文件放在bin文件夹中。
Q8.自己在这门课的目标与计划
8.1请描述一下你的技术基础(会什么语言,都写了多少行代码)
- PTA上的基础入门能较快的写出来,基本语法写起来较慢,基础较不扎实
8.2一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
- 一天准备花1~2个小时学习java,写代码,至少两天要写一个题目;
- 学习方法就是多打代码,多看例子,多找资料
- 遇到困难百度或者向同学问问题
8.3关于这门课的smart目标参考链接
3.使用码云管理Java代码
- 提交失败,还在找原因...