201521123103 《Java学习笔记》第二周学习笔记
一、本周学习总结
1、学习了数据类型的使用:整数类型、浮点类型、 boolean类型、数组等以及类型的转换,最重要的是学会了import引用包;
2、学习了string类对象的拼接、字符串池、枚举类型;
3、实验课学会了如何Eclipse Egit与码云管理代码。以及 bigdecimal和arrays的用法。
二、书面作业
Q1、使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。



String对象的源代码

String对象的设计思路:String的对象是不可变的,它是一个常量,可以用字符数组创建,也可以用new运算符创建。
Q2、为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String ?
答:因为String的对象是不可变的,如果频繁的对字符串的进行修改,会产生大量的字符串对象,效率会降低。而用StringBuilder可以在原来的字符串上直接进行拼接,简单而快捷,大大的提高了效率。
Q3、比较两个字符串的值是否相等?为什么不能用==直接进行比较?
答:“==”比较字符串需要看是否为同一对象。如果2个字符串是同一个对象,那可以用==,如果不是同一个对象,用“==”进行比较即使值相等但是如果对象不同,答案也为false。所以要比较俩字符串的值是否相等需要用到equals实现。
Q4、尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 =“hi“, str2=“hi“;String str3 = new String(str1)System.out.println(str1==str2);
答:输出结果是:true。因为在创建str1对象时建立了一个字符串池,并将"hi"存入其中,而str2并没有创建新对象,而是直接指向了字符串池中的"hi"。也就是说str1和str2指向了同一个"hi",所以程序段的输出结果是true。然后str3在字符串池外又新建了一个对象。如果与str3比较就是false。
Q5、Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i
答:这是包装类与整形之间的转换,是jdk自己帮我们自动完成了调用Integer.valueOf(100),相当于Integer i=new Integer(100)。
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。
因为该题调用了Integer.valueOf(),所以Integer i其实相当于Integer i=Integer.valueof(),这个函数存放在数组中,而它的范围在-128-127之间。127属于这个范围则第一题的i1与i2是同一个对象,结果是true。而第二题的i1与i2的128超出了这个范围,i1和i2就会分别创建一个新的Integer对象,i1和i2指的是不同的对象,所以结果是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.3 Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。
答:源代码放在src里面,class放在bin文件夹中。
Q8、自己在这门课的目标与计划:请描述一下你的技术基础(会什么语言,都写了多少行代码)一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
答:技术基础:基础不好,只会写简单的C和C++程序。没有数过写了多少代码,但感觉很吃力,并没有找到方法;
接下来打算多练习编程,有不会的问老师、同学。寻找到自己对这门课的兴趣,学会编程的技巧和方法。
三、使用码云管理Java代码


四、PTA实验
本周做的是实验二的实验,而我并没有全部完成,只完成了2、4、5题,1题没有编译成功。
实验中遇到的问题:
1、在eclipse上执行正确但在PTA上就编译错误了;
2、String类对象的新建和处理存在问题;
3、对BigDecimal的用法不是很明确。
4、对java还不太了解,函数的调用存在问题。
解决办法及体会;
把老师上课讲的内容又仔细的学了一遍,查百度问同学,一开始觉得希望渺茫,很挫败,但在努力之后还是有收获,以后更要多下功夫下java上,毕竟自己差的还很多。
201521123103 《Java学习笔记》第二周学习笔记的更多相关文章
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
- 20155304田宜楠 2006-2007-2 《Java程序设计》第二周学习总结
20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20175226 2018-2019-2 《Java程序设计》第二周学习总结
20175226 2018-2019-2 <Java程序设计>第二周学习总结 教材学习内容总结 基本数据类型与数组 标识符与关键字 标识符不能是关键字.true.false.null.且第 ...
- # 20175329 2018-2019-2 《Java程序设计》 第二周学习总结
学号 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结 第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨论一下JAVA与 ...
- 20175211 2018-2019-2 《Java程序设计》第二周学习总结
目录 教材学习内容总结 第二章 第三章 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 其他(感悟.思考等,可选) 学习进度条 参考资料 教材学习内容总结 第二章 ...
- 20175314 《Java程序设计》第二周学习总结
20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...
- 20175126《Java程序设计》第二周学习总结
# 20175126 2016-2017-2 <Java程序设计>第二周学习总结 ## LINUX系统安装好输入法后如何使用? - 相信很多同学在刚接触虚拟机LINUX系统时,会因无法输入 ...
随机推荐
- WPF中使用Data Annotations验证Model
.NET Framework中System.ComponentModel.DataAnnotations提供了很多属性来验证对象的属性.可以在C:\Program Files (x86)\Refere ...
- PC网页版、移动客户端、Wap版 有什么不同
测试周期中,可能会涉及到版本说明的词汇,比如:PC版.网页版.Web客户端.PC客户端.移动端.移动客户端.Wap版.H5. 关于"PC网页版"- 因为之前,基本没有PC终端业务,所以我们在通常的沟通 ...
- ThinkSNS+ alpha.2 版本发布,功能抢先看!【社交系统研发日记六】
今天的研发日记,我们不讲技术,我们来看看,社交系统TS+从今天开始全面内测开始,都发布了什么功能. 其实,alpha.1 早上打的 tag ,晚上因为增加了两个核心功能,所以又打了 alpha.2 t ...
- db2 表关联查询
今天在MapReduce的练习中看到了一个题目: file: CHILD PARENT ---------- ---------- tom lucy tom jack jone lucy jone j ...
- xcode调试打印QString
xcode调试打印QString xcode内置GDB,在调试工程过程中可以通过print命令打印基本的数据类型,但像QString这样复杂类型就不行了.虽然我们可以在程序代码通过添加Qt的调试打印语 ...
- 对lea与mov的理解
lea不止可以完成mov的功能,他还可以加载存储器的有效地址,即D<-&S 借鉴深度理解计算机系统里: 指令Leal实际上是movl指令的变形.他的指令形式是从存储器读数据到寄存器,但实 ...
- 程序员的Epic Fail [0]
作为程序员,我们经常会被客户问的一个问题一定是不是说很容易么,为什么花了这么长时间.不得不说,程序员可能是最糟糕的计划者,按时按点按计划完成的软件项目永远是下一个项目.一个项目的延期,有很多这样那样的 ...
- 利用 :before :after伪类实现鼠标悬浮动画效果
1.最近在逛网站的时候,想找一下喜欢的鼠标悬浮效果,避免广告的嫌疑,直接放图了: 2.在实现的时候,如果在直接使用鼠标hover ,transform,进行过渡,不能达到想要的效果,因为同时只能触发一 ...
- CSS层级关系
http://www.blogbus.com/eskimo-logs/69626018.htmlhttp://www.dmtuan.com/?p=574
- 利用CSS hover伪类改变其他元素的总结
:hover 伪类经常用于页面的一些鼠标交互.链接点击变化,增强页面的用户体验,但是可以用来改变其他元素样式,可以在不使用JS 的情况下,达到想要的页面效果. 1.hover改变自身的效果: 鼠标悬浮 ...