201521123014 《Java程序设计》第2周学习总结
1. 本周学习总结
(1)类Scanner 一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
-例如以下代码使用户能够从System.in 中读取一个数:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
(2)学习了使用Arrays对数组的处理。
- binarySearch可以使用二分搜索法来搜索指定的数组,以获得指定的值。
- sort对指定数组的指定范围按数字升序进行排序。
(3)在Java中浮点数默认为double型,字符串比较要用equals方法。
(4)在控制台中,编译.java文件时要用-cp(在指定路径中寻找.java文件),若使用了完全限定类名,编译时要在文件前加上类的路径。
2. 书面作业
(1)使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。##

按Ctrl+左键点击类名则可查看String对象的源代码

答:在Java中,被final类型修饰的类不允许被其他类继承,被final修饰的变量赋值后不允许被修改,String的内容一旦被初始化后,其不能被修改的。
(2)为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?##
答:string每次修改字符串都是新建,然后删除旧的串会很影响效率,用来存储字符串,并对其做了追加和插入操作。这些操作修改了 str 对象的值,而没有创建新的对象,这就是 StringBuilder 和 String 最大的区别。在需要频繁对字符串进行修改操作时使用 StringBuilder 的效率比 String 要高。
参考链接:String详细说明
(3)比较两个字符串的值是否相等?为什么不能用==直接进行比较?##
答:用new String的字符串对象时,即使内容完全一样,使用==比较也是false,因为==比较的是堆内存中的地址,所以只能是用equals()方法比较内容。
(4)尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:##
String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
答:不强制使用 new 运算符而是直接给值的话,如果内容相同,那么两者是同一个对象。所以str3是强制使用了new String(); 强制要求系统生成一个新的对象,而不是获取己有对象的别名。所以这段代码生成了两个对象。
(5)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。
(6)尝试分析下面代码输出结果##
Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
答:java中Integer类型对于-128-127之间的数是从缓冲区取的,所以用“==”比较是一致的。而128超过了数值范围,新建了一个对象,所以为false。
(7)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方法##
1. 尝试用命令行进行编译并运行,截图###


2. 将生成的StringUtil.class放到d:\lib下正确的目录结构下,将Main.class放到d:\test下正确的目录结构,尝试在命令行下运行,并截图。###


3. Eclipse中源代码放在哪个目录、class文件放在哪个目录?在Eclipse项目中按一下Ctrl+F11就可以直接运行Main,当按下Ctrl+F11时,到底在哪个目录下执行了什么样的java命令?###
在src里面存放源代码,在bin文件夹中存放class。
8. 自己在这门课的目标与计划##
- 请描述一下你的技术基础(会什么语言,都写了多少行代码)
- 学了C语言,C++,代码量有上万行了。
- 一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
- 一周准备把空闲时间的3分之二用在Java上,写多少行代码不清楚,尽力而为,把老师布置的任务做好,做完PTA上的题目,看看论坛,遇到困难问一问同学老师。
- 关于这门课的smart目标
- Specific:具体的,无二义性的,能描述 “成功” 是什么样的。
- 我个人认为,学好一门语言,能做到必需要对实际项目的开发流程有所了解,至少要有两个有实际应用价值的项目。
- Motivating: 目标能激发对目标的兴趣么?实现目标对学生来说说意味着什么?他们会为之自豪么?
- 可以激发兴趣,但每个人对目标的高度不同,实现目标对学生来说意味着小有成就,但也不能为之自豪。
- Achievable: 能做到么?是挟泰山以超北海?还是把墙角一堆砖头搬走?
- 相信自己,一步一步慢慢来,总能做到。
- Relevant: 和学生来到大学的大方向、目标吻合
- 没什么大方向。
- Trackable: 能衡量进度的,和有些资料提到的 Measurable 相似。
9. 选做:公交卡里应该还有多少钱?请分析原因##

可能是因为浮点数溢出。
3. 使用码云管理Java代码#

4. PTA实验#
- 实验一,简单的函数调用,枚举类型不太会使用。
- 实验二,StringBuilder类的基本使用。
- 实验三,对于sort的应用
- 实验四,需要使用二维字符串数组存储乘法口诀表的每一项
- 实验五,使用BigDecimal类来实现浮点数的精准计算。
- 实验六,枚举的基本使用
- 实验七,可以用BigInteger。
- 实验八,ArrayList的基本使用,相当于数据结构中提到的链表。
201521123014 《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 ...
随机推荐
- oracle监控脚本【转】
1. 监控事例的等待 select event,sum(decode(wait_Time,0,0,1)) "Prev", sum(decode(wait_Time,0,1,0)) ...
- Xcode部分快捷键
编译调试: command+B 编译 command+R 编译并运行 command+shift+O 单步调试 command+shift+I 执行进入函数 command+shift+T 执行跳出函 ...
- SGI STL 内存分配方式及malloc底层实现分析
在STL中考虑到小型区块所可能造成的内存碎片问题,SGI STL设计了双层级配置器,第一级配置器直接使用malloc()和free();第二级配置器则视情况采用不同的策略:当配置区块超过128byte ...
- 转载:细说Cookie
细说Cookie 转载:http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html 阅读目录 开始 Cookie 概述 Cookie的 ...
- Python量化投资知识总结贴
Ricequant 量化社区的初衷让各位爱好量化的人士可以碰撞思维,在分享和争辩中学习到有用且实战的量化知识.有赖于各位在社区中贡献满满的干货以及有质量的讨论,从编程入门教学到技术指标再到多因子选股. ...
- js获得时间new Date()整理
Date对象取得年份有两种方法:getFullYear()和getYear() 经测试var dt = new Date(); //alert(new Date())弹出:Thu Aug 24 201 ...
- Python程序练习1-模拟用户登录验证
1.功能简介 此程序模拟用户登录验证的过程,实现用户名输入.黑名单检测.用户有效性判别.密码输入及验证等.用户在3次以内输入正确密码登陆成功,连续输错3次密码登陆失败,且该用户名被记录在黑名单,黑名单 ...
- selenium元素定位大全
要做自动化,首先要了解页面结构,要了解页面结构,就要了解页面元素的定位方法 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合B ...
- 迈向angularjs2系列(3):组件详解
一: 以组件开发一个to-do list应用 todo组件分为导入.接口定义.顶层组件.控制器.启动5个部分. app.ts: //导入 import {Component} from '@angul ...
- [2014-02-19]如何移除响应头中的.net framework 版本信息 以及mvc版本信息?
先来看一个简单mvc3网站的响应头 修改Global.asax文件 在Application_Start方法中添加如下代码 MvcHandler.DisableMvcResponseHeader = ...