1. 本周学习总结

(1)完成了课后习题,对所学知识进一步巩固。

(2)学会了JAVA中的选择结构,循环结构,其中条件必须为布尔表达式,与C++非0即真不同。

(3)学会java中的break和continue的使用。

(4)学习了数组在java中的运用,初始化为 int[] student=new in[10]等。

2. 书面作业

(Q1)使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。

关联截图:

源代码:

设计思路:String对象创建之后不能再进行修改。

(Q2)为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?

string每次修改字符串都是新建,然后删除旧的串会很影响效率,而stringbuilder是在字符串的末尾操作,和string比较快。例如StringBuilder每次append()调用后,都会返回原有的StringBuilder对象,方便你进行下一次操作。

(Q3)比较两个字符串的值是否相等?为什么不能用==直接进行比较?

不能。两个对象进行比较,如果使用==符号,那么比较的是这两个对象的“引用”(类似C语言中指针的概念)。字符串比较,通常情况下比较的是字符串的值而非引用,不同的“引用”是可以对应相同值的,如果这时候用==比较,得出的结论是不相等,但是实际上它们的值是相等的。举例说明:

String a = new String("abc");

String b = new String("abc");

a == b; //false

a.equals(b) // true

(Q4)尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:

String str1 =“hi“, str2=“hi“;

String str3 = new String(str1);

System.out.println(str1==str2);


因为str1和str2对象一样,为字符串常量,所以str1==str2而str3建立了一个新的对象,参考至新建的String实例,所以这个代码创建了两个字符串对象,str1与str2指向一个,str3指向一个。

(Q5)Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i

Integer是所谓的打包器,然后当做对象来操作,也就是自动装箱,允许这样打包基本类型。

(Q6)尝试分析下面代码输出结果

Integer i1 = 127;Integer i2 = 127;

i1 == i2;//true of false?

Integer i1 = 128;Integer i2 = 128;


i1 == i2;//true of false?

第一问题答案是true,第二个问题是false。因为Integer的默认值为-128到127之间,第一个i1和i2地址一样结果为true,第二个i1,i2超出数值,不会参考到同一个Integer实例中,范围新建立了一个对象,故地址不同,结果为false。

(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,尝试分析背后实现的原理。

不太理解。

(Q8)自己在这门课的目标与计划

请描述一下你的技术基础(会什么语言,都写了多少行代码)

一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?

关于这门课的smart目标参考链接


如今我会C语言。然后C++语言还未熟练;现在一周准备花大部分空闲的时间,来编写程序与学习java,采用在实践中学习正确的答案与丰富经验开拓思维、遇上困难我会先百度一下,其中有疑惑的话我会问学习较好的同学,若还不能解惑只能依靠老师与学长助教们了。

3. 使用码云管理Java代码

在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图

4. PTA实验

题目集:jmu-Java-02-Java基本语法 中的判断、选择、编程(8道)

实验中碰到的问题、思考、收获与解决方案

(1)编程第2题:首先开始编程的时候把整数连接在一起时并未调用到append(),从而导致采用字符串连接的方式效率低,每次连接都会构建一个新的String对象,既耗时又浪费空间,最后提交到PTA并没有通过。后来使用了StringBuilder,每次调用append()后,都会返回原有的StringBuilder对象,方便进行下一次的操作。让我学会了并运用append函数。让我体会到,并不用像C语言是面向过程的。JAVA是面向对象的,之后因多灵活运用学习。

(2)编程第5题:了解到需要使用 BigDecimal来处理超过16位有效位的数进行精确的运算,double可以处理16位有效数。显然不能运用Double,然而在调用BigDecimal过程之中一直遇到不熟练的问题。总有一些小问题。看不懂或者其他原因。直到慢慢调试。终于找到正确的代码。这是个必须体会的过程,不可能一蹴而就的完成。这也许就是积累经验。

(3)编程第6题:此题中运用到枚举,其中还有哦switch条件式,swicth的括号中放置取得值的变量或表达式,值必须是整数、字符、字符串或Enum。然后按要求去一步一步的编写代码,这题的问题是对不懂得未知而导致不知从何下手,此时就需要耐心去学习,去查资料。从而完成题目的要求。由于对JAVA的熟练度不高,所以有几个题目并未来得及去完成,接下来我会一一去学习完成。争取尽快完成老师给的任务。

5. 小任务(加分)

现有choice.txt文件,里面包含上千行,上百题选择题。先在老师要将其中的题目转化为PTA网站的选择题。然而PTA网站上的选择题对输入格式有要求。要求如下:

题面第1行及选项行前不能有空格,题面其他行无此要求。

题面第1行结尾要包含答案字符串,内容形式@C,代表该题答案为C,分值为2

PTA出题格式需符合Markdown要求,才能有良好的效果。先在要求每一行结尾一定要有2个或以上的空格。

统计:题目数量

输出:最后生成outChoice.txt,包含经过处理过的所有问题。文件第1行,代表题目数量。

提示1:使用Scanner处理输入文件, 使用PrintWriter输出文件。

提示2:题目很简单,大概50行左右,不要畏难。

进阶:可以为将来的自动出题、组卷系统做准备。

201521123029《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. Hotkeys.js 2.0.2 发布,捕获键盘输入和输入的组合键快捷键,它没有依赖

    这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb),gzip:1.9k. 更新内容: 添加测试用例: 添加更多特殊键支持: 修复bug. __ ...

  2. .NET并行处理和并发1-Threads and Theading

    线程是操作系统分配处理器时间的基本单元,并且进程中可以有多个线程同时执行代码. 每个线程都维护异常处理程序.调度优先级和一组系统用于在调度该线程前保存线程上下文的结构. 线程上下文包括为使线程在线程的 ...

  3. MySQL用户和系统变量

    --MySQL用户和系统变量 -----------------------------2014/05/19 用户变量 可以先在用户变量中保存值然后在以后引用它:这样可以将值从一个语句传递到另一个语句 ...

  4. Oracle基础--体系

    1. 连接到Oralce At the operating system prompt, enter the following command to start the SQLCommand Lin ...

  5. re模块的结果小练习题

    1.匹配标签 import re ret = re.search('<(?P<tag_name>\w+)>\w+</(?P=tag_name)>','<h1& ...

  6. 理解javascript中的回调函数(callback)

    以下内容来源于:http://www.jb51.net/article/54641.htm 最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs ...

  7. tensorflow笔记(四)之MNIST手写识别系列一

    tensorflow笔记(四)之MNIST手写识别系列一 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7436310.html ...

  8. 【Spring】XML配置整合Mybatis

    注意:项目开发使用了mybatis的mapper代理! 首先是mybatis自己的配置文件,被spring整合之后,只有typeAliases存在了,其他都整合在了spring-mybatis.xml ...

  9. oracle中如何移动数据文件

    a.shutdown immediate关闭数据库  b.在os下拷贝数据文件到新的地点  c.Startup mount 启动到mount下  d.Alter database rename fil ...

  10. 转:每天一个linux命令(1):ls命令

    ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...