1. 本周学习总结

引用数据类型:JAVA定义字符串实际上是创建字符串的引用,将引用指向需要的字符串。
字符串常量池:直接对引用赋值时,会先在字符串中搜索是否有这个对象,已有则不创建直接指向它。
String不变性:修改string,实际上是分配新的字符串对象,然后将引用指向新的对象,与C语言不同。
StringBuilder:为了应对String不变性,为了频繁修改字符串而不生存新对象的函数。
包装类:java是面向对象的语言,但基本数据类型本身不是对象,包装类可以让数据类型变成对象,方便编程。

2.书面作业

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

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

1.2 分析其构造函数public String(char value[])的作用?
答:将目标char数组复制生成字符串对象,
1.3 阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?(重点)
答:在java中,创建一个string字符串,相当于系统分配内容,并创建一个这个字符串的引用。当改变这个字符串引用时,相当于分配一个新的内容,然后将这个引用指向新的内容,而不会改变原来系统分配的内容,这就是string的不变性。
1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?
答:String是类的一种,指的是字符串类,字符数组是数组,是char类型的,两者可以互相转化;因为string类中有许多已经定义好的函数,直接使用会比用字符数组处理字符串方便很多。

2.StringBuilder

2.1 结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?
答:StringBuilder可以直接进行字符串的修改,而不是创建新的对象,String则因为有不变性,每次修改字符串时都会产生新的对象,占用空间。
2.2 阅读jdk文档,查询StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?
答:StringBuilder的append(char[] str)是将char数组插入到StringBuilder对象后面;
StringBuilder内部使用数组存放字符;
在原字符串的后面添加char数组;

3.字符串与字符串池

3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);
答:当有一个引用被赋值时,系统会先搜索这个值是否已经在字符串中,若有则直接引用这个值,所以在这里str1和str2引用的对象是相同的,这段代码的输出为“true”;str3使用了new,所以即使它所引用的对象的内容与str1相同,新对象也不是在字符串池中,所以这段代码创建了两个字符串对象。

3.2 重点:对基本类型我们可以使用==比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用==比较?应该怎样比较他们的值是否相等呢?
答:因为引用有可能指向不同的对象,不同的对象就算值相同,所在位置也不一定一样;应该用函数equal比较。

4.Wrapper(包装类)

4.1 Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;这一串命令中包含了些什么操作?
答:这里使用了自动装箱,将100赋值给i的引用对象;
自动装箱、自动拆箱、赋值、拆箱再装箱。
4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?
答:JAVA面向对象,但基本数据类型不是面向对象的,包装类可以让基本类型变成对象,方便编程。

5.实验总结

5.1 结对编程实践:
结对编程队友:周彪;刚刚开始学习java,两人的水平都不足,讨论经常是两个人都不懂该怎么做,结果还是一直在百度,这样反而比一个人查询的效率更低;互相交流意见确实可以引发各自的思考,但感觉在我们学java的初期,结对编程并不能达到1+1>2的程度。

5.2 PTA-1综合小测验
斐波那契数列使用循环语句逐个输出字符;
排序则使用arrays函数进行排序,输出时使用Arrays.toString可以用[]包裹;
搜索也是使用arrays类函数进行输出;getBirthDate则是用substring函数抽出身份证中的年月日。

5.3 PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?
sort1:用substring将身份证号中的年月日抽出,组装起来后用Collections.sort排序;
sort2:用年月日比较后输出原身份证号;
将升序函数换成降序函数;用substring抽出月份进行排序即可。

5.4 PTA-4动态数组
先构建二维数组,然后用for循环语句将乘法表输出,空格的问题当时在不同位置直接输入“空格”都是格式错误,后来询问得知要使用%-7s的输出方式。

5.5 (重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?
使用ArrayList的各个函数(add、get、remove等)解决题目问题;数组的长度是固定的,而ArrayList是动态数组,比较灵活。

3. 码云及PTA

3.1. 码云代码提交记录

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

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

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

注意:请使用学姐更新的1.0版,使用新版前请先删除以前information.txt

201621123014《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. python 3 关于requests库的 text / content /json

    最近在爬SDFDA的数据,刚开始用urllib.request 库,一直连不到数据 : 后来通过CHROME浏览器的F12,发现该 网站用的是JSON格式{}'Content-Type': 'appl ...

  2. Effective C++ 49,50

    49.熟悉标准库. C++标准库非常大. 首先标准库中函数非常多,为了避免名字冲突.使用命名空间std.而之前的库函数都存放于< .h>中,如今成为伪标准库.而不能直接将这些头文件所有直接 ...

  3. 算不算类似微信小程序

    这几天微信发布的微信里生成小程序,刷爆了朋友圈. 微信生成的小程序不用下载安装就能在手机里出现,即用即删. 想到这里,我想到苹果手机本身再带类似于微信的小程序的呈现方式,也可以即用即删,那是我在去年久 ...

  4. 转载:python基础之模块

    作者:武沛齐 出处:http://www.cnblogs.com/wupeiqi/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 模块,用一 ...

  5. Android-BroadcastReceiver具体解释

    什么是Broadcast Broadcast即广播,在Android广播是很重要的功能.比如我们想在系统开机之后做某些事情.监控手机的电量.监控手机的网络状态等等.这些功能都须要用到广播.当然我们也能 ...

  6. php建立一个空类: stdClass

    $pick = new stdClass; $pick->type = 'full'; ;

  7. ElasticSearch(二十一)正排和倒排索引

    1.区别 搜索的时候,要依靠倒排索引:排序的时候,需要依靠正排索引,看到每个document的每个field,然后进行排序,所谓的正排索引,其实就是doc values 在建立索引的时候,一方面会建立 ...

  8. 【足迹C++primer】32、定制操作_1

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/cutter_point/article/details/32066151 定制操作 向算法传递函数 ...

  9. 在VS2010下打开VS2008项目的解决办法

    如何在vs2010中打开vs2008项目文件? 第一步:以记事本方式打开该项目的sln解决方案,找到这两行信息,分别如下:Microsoft Visual Studio Solution File,  ...

  10. STM32L0 复位和时钟控制 Reset and clock control (RCC)

    时钟源: HSE:外部时钟 HSI16:可以直接用于系统时钟或者作为PLL输入.一般是1%精度 HSI48:The HSI48 clock signal is generated from an in ...