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系统时,会因无法输入 ...
随机推荐
- UNIX 高手的 10 个习惯
引言 当您经常使用某个系统时,往往会陷入某种固定的使用模式.有时,您没有养成以尽可能最好的方式做事的习惯.有时,您的不良习惯甚至会导致出现混乱.纠正此类缺点的最佳方法之一,就是有意识地采用抵制这些坏习 ...
- 第48篇 说说.Net与Java中的字符串
原文地址:http://blog.laofu.online/2017/08/18/String-In-dotnet-Java/ Java字符串碰到的问题 在写Java程序碰到一个问题,而正是这个问题引 ...
- ubuntu下动态链接库小计
只记录下具体操作代码,以后再做补充 1,gcc -Wall -fPIC -c test4.c 2,gcc -g -shared -Wl,-soname,libtests.so -o libtests. ...
- Redis和消息队列使用实战
消息队列是在乐视这边非常普遍使用的技术.在我们部门内部,不同的项目使用的消息队列实现也不一样.下面是支付系统的流转图(部门兄弟画的,借用一下): 从图中可以看到,里面用到了kafka消息队列.作用是做 ...
- 禁止将http请求强制转换为https请求
近期遇到一个问题,在谷歌浏览器里发起的http请求都会被转化为https请求,但在safari里面不会被转化,所以暂时只能用Safari浏览器进行调试,后来还查看了为什么http被强制转化为https ...
- Spring中Druid链接池的配置
本文记录了使用Druid的方法, 包括Spring和Spring boot中使用Druid的配置方法. Spring中配置Druid连接池 以链接mysql为例 1 添加druid依赖 <dep ...
- 【转载】由浅入深分析mybatis通过动态代理实现拦截器(插件)的原理
转自:http://zhangbo-peipei-163-com.iteye.com/blog/2033832?utm_source=tuicool&utm_medium=referral 我 ...
- JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules
随着前端js代码复杂度的提高,JavaScript模块化这个概念便被提出来,前端社区也不断地实现前端模块化,直到es6对其进行了规范,下面就介绍JavaScript模块化. 这篇文章还是希望能给大家一 ...
- Powerdesigner 连接mysql 在指定的DSN中,驱动程序和应用程序之间的体系结构不匹配 SQLSTATE = IM014
系统环境: WIN7 64位系统, 用Powerdesigner 连接MySQL 逆向工程时 报错 "在指定的DSN中,驱动程序和应用程序之间的体系结构不匹配 SQLSTATE = IM01 ...
- 9.19.3 反射和Properties(重要)
dbinfo.properties文件中的内容: driver oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@192.168.1. ...