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周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. 什么是IAT重定向

    例壳:telock 0.98 仅允许非商业转载,转载请注明出处

  2. 【FAQ系列】:DB服务器产生大量物理读问题优化思路

    一 [现象] 1.7点到9点IO监控指标util特别高,如下: 2 .查看读写情况:读产生很高的物理IO,如下 [分析]:对比其他服务器,buffer pool都是80G,正常情况下热点数据都是从bu ...

  3. SQL 三种基本Join

    Join是关系型数据库系统的重要操作之一,SQL常用Join:内联接.外联接和交叉联接等. 这里讨论一下这常用的三种连接. 测试环境:db2 v10.1, linux 表定义: --用户 CREATE ...

  4. 【leetcode】260. Single Number III

    Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...

  5. 一些常用的集合工具的代码块(缓慢更新XD)

    鱼的记忆   我发现在项目中常常要用到一些集合的处理,不同的项目我经常会编写自己的集合工具代码块,后来我发现我总是在写一样的代码块(可能是我记性不好吧:),毕竟鱼的记忆只有7秒),所以我意识到了是时候 ...

  6. Android App 压力测试 monkeyrunner

    Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...

  7. js 小数计算为啥和想象中不一样!

    今天遇到了一个比较有趣的事,如果要你计算0.1+0.2等于多少你会怎么回答? "0.3啊!"你可能都不会考虑.我也一样,当a=0.1,b=0.2时 if(a+b === 0.3){ ...

  8. C#学习——简介(第一天)

    一.控制台输出 在控制台输出: console.writeline(); console.readkey(); 加上后面一句是为了保证弹窗不会一闪而过. 二.注释 1.单行注释: //int a=90 ...

  9. Java入门(6)——集合、基本数据类型和引用数据类型的相互转换

    集合: 1.HashMap ---->  类 概述: 通过key可以找到value, key就是键, values就是值. 俗称键值对. 特点: 无序的    值可以重复  键不可以重复的  如 ...

  10. Linux巩固记录(3) hadoop 2.7.4 环境搭建

    由于要近期使用hadoop等进行相关任务执行,操作linux时候就多了 以前只在linux上配置J2EE项目执行环境,无非配置下jdk,部署tomcat,再通过docker或者jenkins自动部署上 ...