1. 本章学习总结

你对于本章知识的学习总结

学习了java中各种数据类型的使用

掌握了基本类型的转换

了解string和stringbuilder的区别以及字符串池的原理

学会了使用package管理类和import

学会了使用玛云和Markdown的一些基本语句指令

更加熟练地用命令行进行编译和运行

2. 书面作业

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

关联jdk源代码:

查看String对象的源代码:

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

String类的对象是不可变的,所以String对象创建之后便不可进行修改,在使用“+”拼接字符串会产生新的String对象,而不会修改原先的字符串,会产生大量字符串对象; >StringBuilder对象是动态对象,允许扩充它所封装的字符串中字符的数量,相对于String大大提高了效率。

参考:(http://blog.163.com/zhaoyanping_1125/blog/static/201329153201204111726152/)

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

“==”比较的只是两个对象的地址是否相同,而不是比较两个字符串的值是否相等,比较对象实质是否相同应该用equals()。

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

String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);

str1和str2字符串内容相同,JVM只建立一个string实例,并在字符串池中维护,所以str1和str2参考的是同一个对象;

new是建立新对象,所以str3参考的是新建的string实例;

System.out.println(str1str2)答案显然是true,“”比较的是str1和str2参考的对象地址。

这段代码创建了2个字符串对象。

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

编译程序会自动判断是否能进行自动装箱,在Oracla/Sun的JDK上,编译程序会自动将程序代码展开为Integer localInteger=Integer.valueOf(100)。

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

Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false

(1)输出结果:true

由于127在-128~127之间,同时i1和i2中的字符串内容相同,i1与i2会参考到同一个Integer实例,所以比较结果是true。

(2)输出结果:false

由于128不在-128~127之间,所以在执行Integer i1 = 128时直接建立Integer实例,执行Integer i2 = 128时也是直接建立新的Integer实例,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,尝试分析背后实现的原理。

源代码放在src文件中,class放在bin文件中。

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

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

C语言,估计写了有五千行吧;C++,写了两三千行吧。

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

大概平均一天花一两个小时,当然周末的时候会花多一点时间。

学习时通过知识与实践相结合,看书、PPT、相关视频的同时结合实际操作更加深入地理解,同时也要多敲代码,多练习。

遇到困难首先自己要积极主动地思考错在哪、如何解决、为什么错(是否有一些基本知识没有及时消化并且达到学以致用的效果),可以百度、上图书馆查阅资料、咨询同学老师,还可以思考是否有其他的方式解决问题,条条大路通罗马嘛!

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

Q9.选做:公交卡里应该还有多少钱?请分析原因

公交卡余额为-0.2元(该缴费了)

这串数字转化成十六进制是FFFFFFFC,在编写程序时没考虑到负数的情况,使用的是无符号型。

3. PTA实验总结及码云上代码提交记录

3.1本周Commit历史截图

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

3.2 实验总结

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

第一题在getBirthDate函数中运用return id.substring(6, 9)+"-"+id.substring(10, 11)+"-"+id.substring(12, 13)输入的答案错误。

解决方法:改为return id.substring(6, 10)+"-"+id.substring(10, 12)+"-"+id.substring(12, 14),substring的左括号应为“[”,右括号为“)”。

第三题在后半部分的对生日进行排序,然后输出相应的完整身份证号,原本想用Arrays.sort(a,c),通过自己定义c的算法对a进行排序,结果失败了。

解决方法:改变思路,定义两个数组分别存放身份证号和出生日期,对出生日期数组进行排序,同时对应身份证号也同步改变,最后输出结果。

201521123003《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. 【有意思的BUG】需要停止的进程

    用户操作的目的:将某网站的歌曲分享到朋友圈 用户遇到的问题:在朋友圈内,有2个入口可以播放该第三方的歌曲.但是这两个入口可以同时播放,音乐重叠了. 操作步骤: [1] 将歌曲分享到朋友圈 [2] 在朋 ...

  2. 剑指OFFER(百度笔试)——二叉树的子结构

    百度软件开发实习生笔试: 1.模拟短作业优先调度算法,计算平均等待时间,例如输入[0,2,4,8]表示四个作业分别是第0s到.第2s到.第4s到.第8s到.[2,1,6,3]表示四个作业的运行时间. ...

  3. Fiddler获取https会话

    默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler  Tools--->Fiddler Options--->HTTPS 选项  选中checkbox,如上图 ...

  4. java核心技术之流与文件

    InputStream和OutputStream构成了输入/输出类层次结构的基础.用于按字节进行读写.而与之处在同一等级的Reader/Writer同样作为抽象类定义了用于对字符进行读取的类层次结构, ...

  5. WebApp开发总结

    WebApp开发总结 框架的使用网络上都有教程,就不写了,主要记录下个人的开发总结以方便以后开发注意. css公用样式统一定义 css样式抽出复用 appearance: none; 取消系统默认样式 ...

  6. jsp 的四个作用域 :page、request、session和application的区别 (转)

    1.简单说 page指当前页面.在一个jsp页面里有效 2.request 指从http请求到服务器处理结束,返回响应的整个过程.在这个过程中使用forward方式跳转多个jsp.在这些页面里你都可以 ...

  7. registry key 'Java Runtime Environment' has value'1.8',but '1.7' is requaired(转)

    当更新jdk后,运行java命令可能会提示类似这样registry key 'Java Runtime Environment' has value'1.8',but '1.7' is requair ...

  8. 九天学会Java,第一天,变量和数据类型,赋值和输出

    用9天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说?对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一个初学者首先关心的. 网络上,网 ...

  9. GBK和UTF8的区别

    GBK的文字编码是双字节来表示的,即不论中.英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1. UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中 ...

  10. 堆排序—Java

    堆排序: 一棵完全二叉树,如果父节点的值大于等于左右节点的值,则称此完全二叉树为小根堆(小顶堆):如果父节点的值小于等于左右节点的值,则次完全二叉树为大根堆(大顶堆). 堆排序是建立在大顶堆或小顶堆的 ...