Week02-Java基本语法与类库

1.本周学习总结

Java数据类型分为基本数据类型和引用数据类型。布尔型是Java特有的数据类型。本周重点学习了字符串类型String,String类型中==equalsc存在在不同。String类在对字符串的处理中起着重要的作用,例如字符串str,str.length()可以得出字符串的长度,str.substring(int beginIndex, int endIndex)可以在字符串中截取一段子串,str.toCharArray()可以将字符串转化为字符数组。如果我们频繁修改字符串可以用stringBuilder,更节省时间,提高代码运行效率。在数组的使用中ArrayList类可以灵活运用数组。

2.书面作业

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

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

String使用char数组来存储字符串。

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

public String(char value[])用来创建字符串对象。

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

public String replace(char oldChar, char newChar)函数是将新字符串代替指定的子字符串,String的不可变性在该函数中体现为旧字符串不改变,新字符串代替指定的字符串后生成新的字符串。总的就变成两个字符串,旧的不变,新的为经过该函数操作后新生成的字符串

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

用String来处理数组更加的方便。

2.StringBuilder

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

String的不可变性,用String来处理字符串即产生新的字符串,浪费存储空间,效率低。StringBuilder即在原字符串上作处理,效率相对较高。

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

append(char[]str)将char数组参数的字符串形式追加此序列中。
StringBuilder中用char[] value数组来存放字符。
先存入缓冲区在转换为数组添加到StringBuilder中。

3.字符串与字符串池

3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);

该段代码输出结果为true,创建了两个字符串对象,String str1 ="hi"在字符串常量池中丢入“hi”,str2="hi",即在池中寻找,发现“hi”已经存在,所以直接让str2指向“hi”,和C语言中的指针有点相似的柑橘。此时,str1==str2。而str3是新建立了字符串对象“hi”。

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

==是用来比较比较地址是否相同,若两个值相同,但地址不同,就不能用==来比较
比较值相等应该用equals()

4.Wrapper(包装类)

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

Integer i =100为自动装箱,数据类型为Integer类型,Integer x = 100;为自动装箱,数据类型为Integer类型,
int y = x+1;为自动拆箱,数据类型转换为int型x++;先拆箱后装箱

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

Java是一门面向对象的语言,但基本数据类型不具备对象的性质,有些输入基本数据类型无法表示,包装类可以很好的解决这种问题。包装类在基本数据类型的转换中也更加方便。

5.实验总结

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


结对同学:郑玉波
我们主要讨论方法的使用,感觉两个人一起编程的话,思路会比较广,一些细节问题也比较容易注意到,实现1+1>2的效果,我感觉结对编程的效果不错。
结对dui

5.2 PTA-1综合小测验

本次主要要想到switch的方法,sort中应用split函数来达到分离的目的。用[]包裹这个输入格式只要用函数Arrays.toString()即可。身份证生日的截取要用str.substring()这个函数来实现。

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

本题我是这样做比较的str[j].substring(6, 14)).compareTo(str[j+1].substring(6, 14),只对生日部分进行比较,然后用冒泡法作排序操作,进行降序排序,只需对冒泡法做调整即可,按照出生月份排序,只需要用substring()这个函数,对截取的范围缩小到月份在身份证中的位置即可

5.4 PTA-4动态数组

本题用for循环嵌套对多维数组进行操作和输出即可。但要注意几个点,注意输出格式System.out.printf("%-7s",str[i][j]);,从高维开始要为每一维分配空间。

5.5 PTA-8 ArrayList入门。

这题点虽然很多,但是只要照着点来,ArrayList类的函数操作即可。atr.add()str.contain()str.indexOf()str.lastIndexOf()str.get()str.remove()。ArrayList可以灵活的进行添加和删减

5.6 选做:5-5(浮点数计算)

本题最主要的是要用BigDecima来进行精密的计算。

3. 码云及PTA

3.1. 码云代码提交记录

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

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


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

[](http://images2017.cnblogs.com/blog/1121080/201709/1121080-20170923212913509-1776619728.pn

201621123018《Java程序设计》第2周学习报告的更多相关文章

  1. 20145326《Java程序设计》第一周学习总结

    20145326<Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之 ...

  2. 20155328 2016-2017-2 《Java程序设计》第九周学习总结

    20155328 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 16.1 JDBC入门 JDBC是Java联机数据库的标准规范,定义一组标准类与接口,应用程 ...

  3. 20155319 2016-2017-2 《Java程序设计》第一周学习总结

    20155319 2016-2007-2 <Java程序设计>第一周学习总结 考核方式 翻转课堂考核12次(5*12=60):每次考试20-30道题目,考试成绩规格化成5分(如总分20分就 ...

  4. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  5. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  6. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  7. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  8. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  9. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  10. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

随机推荐

  1. ecplice中去掉提示信息的步骤

    Window-->preferences-->Java-->Editor-->Hovers-->将Combined Hover前面的对勾去掉-->ok.

  2. 【D3D】Direct3D中LPRECT(上左右底)和LPoint(x,y)之前转换

    D3DSprite.cpp void CD3DSprite::DrawText(CD3DFont *pFont, char *szString, RECT &DesRect, D3DCOLOR ...

  3. metasploit渗透测试指南概要整理

    一.名词解释 exploit 测试者利用它来攻击一个系统,程序,或服务,以获得开发者意料之外的结果.常见的 有内存溢出,网站程序漏洞利用,配置错误exploit. payload 我们想让被攻击系统执 ...

  4. Canvas游戏计算机图形教程

    TechbrooD   主站 WOW 登录   注册 0首页 1简介 1.1WWW 技术变迁和生态 1.2WWW 学习建议 1.3WWW 互联网基础知识 1.4WWW Web 1.5 WWW Web ...

  5. Linux的crontab应注意事项

    今天遇到一个问题,困扰了好久,刚开始时以为crontab定时任务配置错误,后经过验证没有错误,然后又怀疑到是不是权限问题呀?将权限跟改为root后,重新配置crontab定时任务,还是不行,真是让人气 ...

  6. Plugin 'Scala' is incompatible with this.installation

    ==问题=== 手动安装IDEA的Scala插件,报这个错误. ===原因=== IDEA的版本与Scala插件的版本不兼容. ===解决=== 1.查看一下IDEA的版本 2.下载对应版本的Scal ...

  7. maven 无法下载私服jar包,如刚上传的第三方jar包无法下载。。

    原因可能是: 在你下载该文件时 ,的确 私服上没有该文件. 但是maven会在本地仓库建立文件夹路径,并且今天不会再去私服下载. 即使你现在上传3rd jar ,也不会去下载,导致一直找不到jar.. ...

  8. 使用kindeditor 4.1.7 编辑器 注意事项,上传图片失败 问题 ,

    <script charset="utf-8" src="editor/kindeditor.js"></script> <scr ...

  9. Directory /usr/local/hadoop/tmp/tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible

    解决方法: <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp< ...

  10. Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子

    转自:http://www.blogjava.net/wangxinsh55/archive/2011/07/24/354925.html   Jbpm4.4+hibernate3.5.4+sprin ...