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代码

  • 提交失败,还在找原因...

4. PTA实验

posted @ 2017-03-04 16:58  冬冬冬  阅读(244)  评论(0编辑  收藏  举报