201521123025 《Java程序设计》第2周学习总结
1. 本章学习总结
一些注意:
(1)在JAVA中,不加后缀的浮点数被默认为double型,如果要用float型就要在数据后加上f或F后缀,如float a=32.6f(正确);float a=32.6(错误);但整数可以不加后缀,如 float a=32(正确)。
(2)浮点数不精确,不能用于金融计算,要想更精确请使用BigDecimal类。
(3)==比较的是引用的值,字符串比较要用equals方法。
2. 书面作业
Q1.使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。


答:String对象创建之后不能再进行修改,因此编译时可以让字符串共享,提高效率。
Q2.为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
答:String对象创建之后不能再进行修改,若要对字符串修改,就不会修改原先的字符串,而是会再产生新的字符串。因此用String时频繁修改字符串就会产生大量的新字符串对象,浪费空间,影响效率。
StringBuilder对象创建后是可以修改的,使用这个类所产生的对象默认会有16个字符的长度,我们也可以自行指定初始长度。如果附加的字符超出可容纳的长度,则StringBuilder 对象会自动增加长度以容纳被附加的字符,因此频繁修改字符串时就不必创建新字符串,节省空间,提高效率。
Q3.比较两个字符串的值是否相等?为什么不能用==直接进行比较?
答: eg:
String a="abc";String b=new String("abc");
当System.out.println(a==b);输出false;
当System.out.println(a.equals(b));输出true;
“==”比较的是两个字符串引用的值是否相同,而用equals()则是比较两个字符串内容是否一致.
Q4.尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
答:
java运行环境有一个字符串池。每当新建一个字符串(如String str="abc")时,首先会在字符串池查看是否已有"abc",如果有,则将该字符串的首地址赋值给str;如果没有,生成一个新的字符串"abc"并且将首地址赋值给str。
这段代码中str1和str2共用1个对象,str3创建了1个,所以总共创建2个字符串对象。
Q5.Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i
答:在目前的JDK版本中,能够采用自动装箱和自动拆箱,装箱就是将java中的基本类型(如int)转换成对象类型(如Integer),而拆箱就是将对象类型的值取出来赋值给java中的基本类型。所以题目中的Integer i=100则可以理解成:int i=100;Integer i = new Integer(100);所以可以将100赋值给i。
Q6.尝试分析下面代码输出结果
Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
答:
Integer i1 = 127;Integer i2 = 127;
System.out.println(i1 == i2);//true
Integer i1 = 128;Integer i2 = 128;
System.out.println(i1 == i2);//false
java中Integer类型对于-128-127之间的数是从缓冲区取的,所以用“==”比较是一致的。但对于不在这区间的数字则是新建一个Integer,所以地址空间不一样,也就不相等。
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文件中。
当写程序时会在开头写一个package,为其他程序调用此程序提供一个路径,import则可以调用各种包。
Q8.自己在这门课的目标与计划
请描述一下你的技术基础(会什么语言,都写了多少行代码)
一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
关于这门课的smart目标参考链接
答:行动胜过言语。我很多次都想认真写代码,但总是遇难而退,想法很好,但总不去付诸行动。现在我会尽可能的去花时间在java上,少打游戏吧。
3. 使用码云管理Java代码
在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图
还是无法交到码云上
4. PTA实验
题目集:jmu-Java-02-Java基本语法 中的判断、选择、编程(8道)
实验种碰到的问题、思考、收获与解决方案
201521123025 《Java程序设计》第2周学习总结的更多相关文章
- 201521123025<java程序设计>第五周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
- 201521123025<<java程序设计>>第4周学习总结
Q1. 本周学习总结 Q2.书面作业 1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 2.面向对象设计(大作业1,非常重要) 2.1 将在网上 ...
- 201521123025 <<java程序设计>>第3周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 201521123025<<java程序设计>>第9周学习总结
1. 本周学习总结 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 经常出现Array ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
随机推荐
- angular学习(三)-- $scope
1.3 视图数据模型:$scope $scope 是用来视图和数据之间的胶水.粘合剂 视图和控制器之间的数据桥梁 用于在视图和控制器之间传递数据 用来暴露数据模型(数据.行为) 监视模型数据的变化,做 ...
- 《利用python进行数据分析》NumPy基础:数组和矢量计算 学习笔记
一.有关NumPy (一)官方解释 NumPy is the fundamental package for scientific computing with Python. It contains ...
- opencv 基本绘图函数
opencv 常用的数据结构和函数 颜色空间转换函数 cvtColor 函数 cvtColor 函数是opencv 中的颜色空间转换函数.可以实现rgb向hsv hsi等颜色空间的转换,也可以转换成灰 ...
- Apriori关联分析算法概述
概念 关联分析:从大规模数据集中寻找物品间的隐含关系.物品间关系又分为两种:频繁项集或关联规则,频繁项集是经常出现一块的物品集合:关联规则则暗示物品间存在很强的联系 关联评判标准:支持度和可信度.支持 ...
- 51NOD 1258 序列求和 V4 [任意模数fft 多项式求逆元 伯努利数]
1258 序列求和 V4 题意:求\(S_m(n) = \sum_{i=1}^n i^m \mod 10^9+7\),多组数据,\(T \le 500, n \le 10^{18}, k \le 50 ...
- Mac OSX中的@executable_path, @load_path和@rpath的理解(网摘)
Mac OSX中的@executable_path, @load_path和@rpath的理解 原文出处:[24K纯开源] Note: this article is actually about t ...
- 腾讯SNG电面
第一次电面. 前半段基本闲聊,问题也记得不太清楚了. 自我介绍. 为什么想去上海工作?除了职业方面有其他原因吗?我猜出来面试官想问私人问题了,你真的可以直接问的,拐弯抹角了好久...有什么爱好.特长. ...
- 自制简易Linux系统
l 要求: 裁剪一个装载有网卡驱动可以上网并且使用到init的一个小系统 l 准备: 虚拟机,centos6.4 l 步骤: 一.在宿主机上添加一块硬盘,并为其安装grub 1. 在宿主机上添加一块硬 ...
- Oracle教程之学习笔记
Oracle教程之学习笔记... ----------------------------------- Oracle教程:---学习笔记: ============================= ...
- 从基于idea的第一个javaweb项目到shell脚本项目自动发布(jdk1.8,mysql5.7,maven3.5,tomcat9,subversion,centos7.3)之一
首先说一下为什么写这篇文章,因为从正式参加工作就做javaweb开发,一路走来,碰到了很多的问题,每次问题都想从度娘那里得到准确的答案,但是,每个人遇到的问题不尽相同,问题的解决方案有时候也只是仅供参 ...