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. /dev/null 2>&1解释

    /dev/null 2>&1 解释 crontab内容 :50 18 5-30 * * /script/myscript.sh 1> /dev/null 2>&1 其 ...

  2. inline-block 元素之间的空白问题

    一.遇到的问题 前些天写瀑布流布局的时候,发现明明计算好了宽度使得一行能放下三张图片,实际效果却总是放不下,图片会挤到下一行去.上图: 可以看到,我本来是想要两行图片,每一行是三张.结果现在第一行的图 ...

  3. 【转】session和cookie详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  4. Charles使用(一)

    Charles使用(一)   1.什么是Charles Charles是在MAC下常用的网络封包截取工具,在做移动开发时,是为了调试与服务端的网络通信协议,常常需要截取网络包来分析.Charles是通 ...

  5. JavaScript 加号运算符详解

    将介绍JavaScript中 '+'加号运算符在一元.二元运算时的表现. 目录 1.一元运算符 2. 二元运算符 1. 一元运算符 语法: + Expression 说明:'+'号运算符作为一元运算符 ...

  6. Mvc数据验证总结

    Mvc提供模型级数据验证 一.服务端验证: ModelState.IsValid ModelState.AddModelError("Name", "错误提示" ...

  7. sort与qsort的用法,建议使用sort

    做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错.STL里面有个sort函数,可以直接对数组排序,复 ...

  8. .net core 2.0 登陆权限验证

    首先在Startup的ConfigureServices方法添加一段权限代码 services.AddAuthentication(x=> { x.DefaultAuthenticateSche ...

  9. python专题-函数式编程

    函数式编程是使用一系列函数去解决问题,按照一般编程思维,面对问题时我们的思考方式是"怎么干",而函数函数式编程的思考方式是我要"干什么". 至于函数式编程的特点 ...

  10. 推荐一款接口文档在线管理系统-MinDoc

    项目简介 MinDoc 是一款针对IT团队开发的简单好用的文档管理系统. MinDoc 的前身是 SmartWiki 文档系统.SmartWiki 是基于 PHP 框架 laravel 开发的一款文档 ...