201521123082《Java程序设计》第2周学习总结
201521123082《Java程序设计》第2周学习总结
标签(空格分隔): Java
1.本周学习总结
- 巩固了类型转换的相关细节
- 初步认识了类和对象,使用Java撰写程序几乎都在使用对象,要产生对象必须先定义类。同时一个原始码中可以有多个类定义,但只能有一个是公开类,且文档中的主文档名必须与公开类名称相同。
- 学会使用标准类:java.util.BigDecimal。并将其运用于Pta的实验。
- 了解了自动装箱和拆箱的内幕,对数组对象和字符串对象的运用。
- 初步了解了对象与封装,以及继承与多态。
2.书面作业
Q1.使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路
答:
(1)JDK相关截图
*关联jdk源代码的步骤:
MyEclipse-->Windows--> preferences--> Java --> Installed JREs
--> Edit -->Source Attachment -->Extenal location -->Extenal File...-->src.zip -->OK-->Finish
*使用Eclipse(MyEclipse)关联jdk源代码的具体方法(参考链接):http://blog.csdn.net/weiwangchao_/article/details/25960961
(2)String对象源代码部分截图
(3)String对象的设计思路
首先String是final类型的,不能被其他类继承。其次String字符串是常量,其值在实例创建后就不能被修改,但字符串缓冲区支持可变的字符串。后面的源代码还未具体深究,等以后分析完毕后,再来补充和修改博客。
参考文章链接:http://www.jianshu.com/p/799c4459b808
Q2.为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
答:
当创建了 StringBuilder对象,用来存储字符串,并对其做了追加和插入操作。这些操作修改了对象的值,而没有创建另一个新的对象。而String则创造了一个新的对象。
实例说明:
Q3.比较两个字符串的值是否相等?为什么不能用==直接进行比较?
答:
不可以;
具体例子:
String str1 = "Moyi";
String str2 = "Moyi";
System.out.println(str1 == str2); //返回true,因为str1和str2是对同一个字符串常量的引用,是同一个对象地址。
String str1 = new String("Moyi");
String str2 = new String("Moyi");
System.out.println(str1 == str2); //返回false,因为str1和str2是两个值都是Moyi,但是对象不同。
建议使用equals()。
Q.4尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
答:
返回true;
以""包括的字符串,只要内容相同,JVM只会建立一个String实例;并在字符串池中维护,所以str1=str2;这段代码创建了两个字符串对象。
Q.5Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i
答:
这是个自动装箱的例子。
Integer i = 100是对象的自动装箱,在编译程序时,会自动将程序代码展开为Integer i = new Integer(100)。
Q.6尝试分析下面代码输出结果
Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
答:
分别为:true 和 false
因为IntegerCache.high默认值是127,IntegerCache.low默认值是-128。i1=i2=127,处在其间。所以一个代码运行结果返回true。
第二段代码i1=i2=128不处于-128到127之间,所以要建立一个新的Integer实例,在使用==时就会返回false。
Q.7package与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,尝试分析背后实现的原理。
答:
7.1
7.2
错误:
正确:
7.3
在src里面存放源代码,在bin文件夹中存放class。
Q.8自己在这门课的目标与计划
(1)请描述一下你的技术基础(会什么语言,都写了多少行代码)
(2)一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
(3)关于这门课的smart目标
答:
(1)接触过C语言和一点点C++
(2)
每天2~3小时,具体的情况会增加;
每周完成PTA代码和适量的学习网站题目;
先熟悉基本知识,后实践,再总结归纳;
遇到困难上Google查阅资料,或者先思考后再询问老师同学。
(3)
期待期末能够独立完成一个Web或者安卓项目的制作。
Q.9选做:公交卡里应该还有多少钱?请分析原因

答:
视频地址:http://v.ifeng.com/news/society/201303/bec03216-938b-4618-8e65-64f4e42f5803.shtml
公交卡余额为-0.2元
原因:可能机器上定义了无符号的数吧。
3. 使用码云管理Java代码
起初误删码云上的项目,重新在MyEclipse上设置Egit出错,就用Git Bash上传。
命令整理:
git init
touch README
git add README
git add 提交的文件
git commit -m '信息'
git remote add origin 码云项目地址
git pull --rebase origin master
git push -u origin master
截图:


4. PTA实验及其总结
- 实验2中用到了基本语法StringBuilder,学会用append()和substring()来完成题目要求。
- 实验3中,用parseInt将字符串参数作为有符号的十进制整数进行解析。
- 实验4中用到Arrays.deepToString 打印二维数组中的内容。
- 实验5中用到BigDecimal实现浮点数计算。
- 实验7大整数相加用到BigInteger
5. 小任务(加分)[在规定时间内若未完成后面补上]
现有choice.txt文件,里面包含上千行,上百题选择题。先在老师要将其中的题目转化为PTA网站的选择题。然而PTA网站上的选择题对输入格式有要求。要求如下:
题面第1行及选项行前不能有空格,题面其他行无此要求。
题面第1行结尾要包含答案字符串,内容形式@[C](2),代表该题答案为C,分值为2
PTA出题格式需符合Markdown要求,才能有良好的效果。先在要求每一行结尾一定要有2个或以上的空格。
统计:题目数量
输出:最后生成outChoice.txt,包含经过处理过的所有问题。文件第1行,代表题目数量。
提示1:使用Scanner处理输入文件, 使用PrintWriter输出文件。
提示2:题目很简单,大概50行左右,不要畏难。
进阶:可以为将来的自动出题、组卷系统做准备。201521123082《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 ... 
随机推荐
- 再起航,我的学习笔记之JavaScript设计模式08(建造者模式)
			我的学习笔记是根据我的学习情况来定期更新的,预计2-3天更新一章,主要是给大家分享一下,我所学到的知识,如果有什么错误请在评论中指点出来,我一定虚心接受,那么废话不多说开始我们今天的学习分享吧! 前几 ... 
- 从SAP顾问猝死事件谈顾问加班
			今天朋友圈盛传一则消息,说是南瑞集团的一名名为牛耕耘的SAP顾问因为工作强度大,连续不分昼夜加班而猝死在工作岗位上,遗留下年迈的父母.体弱的妻子.刚满周岁的孩子和巨额的债务.我无法证实该消息的真伪,但 ... 
- 【有意思的BUG】客户端无厘头 已连网的场景初始化太慢 未连网的场景异常崩溃
			客户端 已连网的场景初始化太慢 当在未连接internet的时候,打开某些APP,会比较迅速地初始化进入到主页面. 但是当我在已经连接了internet的时候,打开某些APP,有些会初始化很久!!!! ... 
- SpringMVC实现垂直搜索引擎
			本篇博客是在上一篇<Lucene搜索引擎+HDFS+MR完成垂直搜索>的基础上,在数据收集之后的JSP/Servlet方面,换为SpringMVC框架来实现. 借助SpringMVC技术完 ... 
- hashlib,configparser,logging模块
			一.常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ... 
- Spring集成RabbitMQ-使用RabbitMQ更方便
			如果提到Spring,你脑海中对他的印象还停留在SSH三大框架之一,那或许你该好好重新认识这个家伙. 在IT技术日新月异的今天,他还能让你忘不了并与他朝夕相处,他,肯定有自己的绝活.如今他早已经不是孤 ... 
- 开源一款iOS中国地图行政区控件(含一级与二级行政区)
			开源一款iOS版中国省市级地图行政区的控件,该组件可以支持拖动.缩放以及全国省和市级行政区的点选,主要适用于iPad,如果要在iPhone上使用,一些细节可能得做相关调整. 该地图组件实现起来不难,数 ... 
- noip提高组2011 Mayan游戏
			Mayan游戏 描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.**游戏通关 ... 
- SLF4J源码解析-LoggerFactory(二)
			承接前文SLF4J源码解析-LoggerFactory(一),本文则主要针对获取ILoggerFactory对象作下简单的分析 LoggerFactory#getILoggerFactory() 源码 ... 
- Kickstart Round D 2017 problem A sightseeing  一道DP
			这是现场完整做出来的唯一一道题Orz..而且还调了很久的bug.还是太弱了. Problem When you travel, you like to spend time sightseeing i ... 
 
			
		








