201521123018 《Java程序设计》第2周学习总结
1. 本章学习总结
* String类
* Java数组Array的使用
2. 书面作业
Q1.(1) 使用Eclipse关联jdk源代码,并查看String对象的源代码(截图)?




(2)分析String使用什么来存储字符串的?回答String的不可变性在该函数中如何体现?
* String是一个字符数组,当String被初始化后,内容不被修改,而常见的String str="hello",str="world",str内容被修改,并不是hello被world替
代,而是str指向world这个字符串.
Q2. 为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
* String在赋予其变量初始值后,是不会再改变的,而内容的改变,只是因为变量指向了其他字符串,若是需要重复多次的修改操作,也就意味着要在内存中分出更多的的地方来存取这些字符串,来使变量指向它;StringBuilder则是在原来字符串上改变,较之String节省了许多成本
Q3.比较两个字符串的值是否相等?为什么不能用==直接进行比较?
* 例如:String str1="123";String str2=new String("123");比较str和str2时会出现错误,结果显示不相等;因为String str2=new String("123");这条语句在内存中新建了一个内存来存放数值"123",此时内存中有两个内存都储存着数值"123";用"=="比较的是字符串的地址,两个"123"储存的地址不相同,答案自然是不相等;因此,字符串的比较应该调用函数equals(),如str1.equals(stt2)。
Q4.尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 ="hi", str2="hi";
String str3 = new String(str1)
System.out.println(str1==str2);
* 首先第一条语句,新建字符形变量str1让其指向字符"hi",在字符串池中寻找有没有"hi",发现没有则创建"hi",然后str1指向它。再新建str2让其指向字符"hi"
,在字符串池中寻找有没有"hi",发现有,然后str2指向它;第二条语句,新建字符型变量str3,在字符池外新建一个与str1指向的字符相同的字符,并让str3指向这个新建的字符;第三条语句,判断str1和str2指向的字符的地址是否相等;相等,输出true;不相等,输出false;
因为str1和str2指向的是同一个字符,地址自然相同,所以输出true,创建了2个字符对象。
Q5.Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?
* Integer i实际操作是Integer i=Integer.valueOf(i),当数值是-128到127,会直接调用Integer.valueOf()。
Q6.尝试分析下面代码输出结果:
Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
* 第一个是true,因为127是在Integer.valueOf()范围内(-128到127);第二个是false,因为128不在Integer.valueOf()范围内,是指向两个不同的对象;
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,当按下Ctrl+F11时,到底在哪个目录下执行了什么样的java命令
* 不懂怎么弄;
Q8.自己在这门课的目标与计划
* 请描述一下你的技术基础(会什么语言,都写了多少行代码)
* 一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
* 关于这门课的smart目标参考链接
* C语言,C++,Java;几千行吧;
* 50%;过百;边学边实践;度娘;
* 不知道;
3. PTA实验总结及码云上代码提交记录
本周Commit历史截图
在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图,如下图所示

201521123018 《Java程序设计》第2周学习总结的更多相关文章
- 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可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- python发布及调用基于SOAP的webservice
现如今面向服务(SOA)的架构设计已经成为主流,把公用的服务打包成一个个webservice供各方调用是一种非常常用的做法,而应用最广泛的则是基于SOAP协议和wsdl的webservice.本文讲解 ...
- python_求相邻数
什么是相邻数? 比如5,相邻数为4和6,和5相差1的数,连续相差为1的一组数 需求: 遍历inputList 所有数字,取出所有数字,判断是否有相邻数, 不相邻数字 和 相邻数字 都以 “数组”形式 ...
- mac系统读写NTFS格式的移动硬盘
Mac OS X默认情况下,对于NTFS的移动硬盘只能读不能写,可通过将移动硬盘格式化为exFAT 或者安装NTFS相关的工具,达到可读写的目的,但对于系统的安全性方面,以上方式得不到保证:在Mac ...
- Linux 日常使用小记
一.Oracle VirtualBox安装Linux7.0全屏设置 1. 点击菜单栏 设备 –> 分配光驱 –> 选择一个虚拟光盘,找到VirtualBox安装目录下的VBoxGuestA ...
- 单线程的JavaScript
Javascript是单线程的 因为JS运行在浏览器中,是单线程的,每个window一个JS线程,既然是单线程的,在某个特定的时刻只有特定的代码能够被执行,并阻塞其它的代码.而浏览器是事件驱动的(Ev ...
- Struts2学习笔记(五)——Action访问Servlet API
在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1 ...
- Win7系统如何复制CMD命令提示符框中的内容
Win7系统如何复制CMD命令提示符框中的内容.. Win7系统如何复制CMD命令提示符框中的内容右键命令提示符窗口的标题栏,选择属性. 选择“编辑选项”里的“快速编辑模式”,并确定: 鼠标左键按下选 ...
- [js高手之路]设计模式系列课程-设计一个模块化扩展功能(define)和使用(use)库
模块化的诞生标志着javascript开发进入工业时代,近几年随着es6, require js( sea js ), node js崛起,特别是es6和node js自带模块加载功能,给大型程序开发 ...
- cocos2dx 在Xcode里面 resource 里面文件夹的搜索
以前一直在pc上写cocos2dx 第一次到Xcode里面写 发现在resource文件夹里面 添加了新的目录后竟然没有用 这里记录下 在项目里面和classes目录同级的 标签下有个Resourc ...
- ubuntu 14.04中安装phpmyadmin即mysql图形管理界面
由于学习的需要,我将网站开发环境从windows转移到了ubuntu,ubuntu下之前并没有发现什么难的地方,只要百度一般都有解决方案.但是总所周知ubuntu是一系列开源软件的集合,由于版本的问题 ...