1.本周学习总结

本周学习了JAVA中的引用类、包装类(学习了一种语法:自动装箱)和数组(遍历数组的新方法foreach循环)。

2. 书面作业

1.String-使用Eclipse关联jdk源代码

1.1 查看String对象的源代码(截图),分析String使用什么来存储字符串?

数组数组来存储字符串

1.2 分析其构造函数public String(char value[])的作用?

建立新的字符串数组,表示当前所包含的字符串,这样字符数组后面修改也不会影响新建的字符串。

1.3 阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?(重点)

newChar创建了一个新的字符串数组,之后替换到新的数组中,实际上就创建了一个新的String的对象,所以并没有直接修改。就体现了它的不可变性。

1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?

String是有字符数组进行存储。String更为灵活方便,因为当你输入一堆字符串时,如果要使用数组,后面需要修改时,数组大小已经固定,太长会发生错误,太短会导致空间浪费,但是如果使用String类型它会通过自己输入的字符大小改变数组的大小,更为灵活。

2.StringBuilder

2.1 结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?

  • String改变字符串时,每次修改都会生成新的串,导致空间的浪费
  • StringBuilder是直接对之前的字符串进行修改。

2.2 阅读jdk文档,查询StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?

  • append(char[] str)用来在原来的字符串上进行添加功能。
  • 内部使用字符串数组存放字符
  • 调用StringBuilder的append(char[] str)方法时:字符串→字符数组→添加到StringBuilder对象

3.字符串与字符串池

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

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

输出结果为:ture

str1 ="hi"进行时候,hi作为字符常量在字符串池中查找,如果没有就创建,如果有就直接调用。所以当 str2="hi"进行的时候能够在字符串池中找到,对象是相同的,所以结果显示true.

3.2 重点:对基本类型我们可以使用==比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用==比较?应该怎样比较他们的值是否相等呢?

  • 引用的对象和类型不同、地址不同所以即使值相同系统也是错误
  • 可以用equeals()比较

4.Wrapper(包装类)

4.1 Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;这一串命令中包含了些什么操作?

  • 用到自动装箱、自动拆箱。

    将基本数据类型自动转换对应的对象。即Integer i = Integer.parseInt(100);
  • 自动装箱、自动拆箱再装箱。

4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?

  • 基本数据类型不是面向对象转换麻烦。有了包装类可以让我们使用JAVA时更方便的实现基本数据的转化。

5.实验总结

5.1 结对编程实践:使用结对编程的方式完成本周编程题目,即两个人同时合作完成实验题目(可1题也可多题,但最好是是两个人都没做过的题目)。推荐实施步骤:1.两个人坐在同一台电脑屏幕前判题,讨论、决定大概由谁先写。2. 1个人先编5分钟(自己商量多少分钟),同时另一个人观察对方编程或者查相关资料。3. 5分钟后,简单讨论后,换另外一个人继续编(请一定要换,另一个人如果无法接受应由第一个人讲解大概思路以方便其接受)。并完成如下作业:a.描述结对队友姓名、结对过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。b.结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会(如是否有利于自己编程水平的提高、是否有利于开拓编程思路)。

合作对象:林俊伟 合作题目:综合小测验

我觉得对于两个人的合作是一件比较好的事情。对于我来说哈,因为我的基础不行,有时候思路不是很开阔,有一个能够帮你解析题目,分析代码的人能够帮助学到更具体的知识。但有时候我们想法不一样所以需要调解分析哪个方法更好一些,我觉得这样可能可以总结出更简单易懂方便的代码。

5.2 PTA-1综合小测验

  • fib用递归写斐波那契
  • sort的值存入数组然后用Arrays.sort()输出
  • 用str.substring()取时间

5.3 PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?

  • 主要利用冒泡法进行对对出生年月日的排序;
  • 寻找年月日对应的数字位置存入数组
  • 数组元素→字符串→int→比较

5.4 PTA-4动态数组

将乘法表存入一个动态数组(for双循环)

5.5 (重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?

按照文档中ArrayList用法即可

ArrayList是动态数组。可以增加和减少元素大小也可以改变

3.码云及PTA

3.1. 码云代码提交记录

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



3.2 截图题集“Java基本语法”PTA提交列表

3.3 使用老师发的jar程序统计每周的代码量

周次 总代码量 新增代码量 总文件数 新增文件数
2 207 207 4 4

201621123060《JAVA程序设计》第二周学习总结的更多相关文章

  1. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  2. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  3. 2017面向对象程序设计(Java)第二周学习总结

    2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结

    丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

  5. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  6. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  7. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  8. 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结

    这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...

  9. 杨其菊201771010134《面向对象程序设计Java》第二周学习总结

    第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...

  10. 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

随机推荐

  1. Mybatis入门看这一篇就够了

    什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  2. 2.3.2 InnoDB内存

    前面介绍了一些InnoDB的体系架构(http://www.cnblogs.com/tanwt/p/8530987.html) 接下来介绍一下InnoDB 的内存 1.缓冲池 首先我们需要了解的是In ...

  3. 数列分块总结——题目总版(hzwer分块九题及其他题目)(分块)

    闲话 莫队算法似乎还是需要一点分块思想的......于是我就先来搞分块啦! 膜拜hzwer学长神犇%%%Orz 这九道题,每一道都堪称经典,强力打Call!点这里进入 算法简述 每一次考试被炸得体无完 ...

  4. 【BZOJ2428】均分数据(模拟退火)

    [BZOJ2428]均分数据(模拟退火) 题面 BZOJ 题解 先说说黄学长的做法: 当温度比较高的时候,贪心 每次随机一个数,把他放进当前和最少的那一组里面 温度足够低的时候就完全随机然后转移 这样 ...

  5. js获取本机的网络IP地址

    JavaScript是一门脚本语言,是不能操作文件,读取本地信息的,所以想要获取IP,还需要借助后端技术.方法如下: //获取本机的网络ip地址 function jsonpCallback(res) ...

  6. HandsonTable日期控件的汉化

    由于项目的需要,想把HandsonTable自带的日期中英文替换成中文.其实这个不难,只要在库文件中替换下就可以了,替换的效果对比如下:         如果有需要的同学,可以在此处下载 By QJL

  7. 不能为虚拟电脑 ubuntu 打开一个新任务.

    使用virtualbox报错: 不能为虚拟电脑 ubuntu3 打开一个新任务. The virtual machine 'ubuntu3' has terminated unexpectedly d ...

  8. Linux设备驱动框架设计

    引子 Linux操作系统的一大优势就是支持数以万计的芯片设备,大大小小的芯片厂商工程师都在积极地向Linux kernel提交设备驱动代码.能让这个目标得以实现,这背后隐藏着一个看不见的技术优势:Li ...

  9. MySQL聚集索引和非聚集索引

    索引分为聚集索引和非聚集索引,mysql中不同的存储引擎对索引的底层实现可能会不同,这里只关注mysql的默认存储引擎InnoDB. 利用下面的命令可以查看默认的存储引擎 show variables ...

  10. Cxf 自动生成客户端服务端代码

    第一步: 下载apache-cxf安装包.并安装. 第二步: 配置cxf的环境变量. CXF_HOME = "CXF安装路径". 例如:F:\apache-cxf-2.1.2 在P ...