201621123075 Week02-Java基本语法与类库
1.本周学习总结
本周学习了java的数据类型,有基本数据类型和引用数据类型(不同c),特有的boolean类型,取值只有true和false。还有包装类和数组,每一个基本类型都有相对应的包装类,对应的语法有自动拆箱和自动装箱。数组的构建也和c语言有一些区别,java还可以直接简单构建不规则数组
2.书面作业
1.String-使用Eclipse关联jdk源代码
1.1 查看String对象的源代码(截图),分析String使用什么来存储字符串?

String用char【】数组来存储字符串。
1.2 分析其构造函数public String(char value[])的作用?

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

先对新旧数组进行判断,并对原数组进行判断,要是=oldchar【】,就直接返回。否则就将newchar【】de值换成旧数组的值。所以说string不可变性
1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?
使用string可以更简洁高效快速的处理字符串,出错率低。
2.StringBuilder
2.1结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?
由1知string的对象不可变性,所以用string频繁修改字符会占用很大内存,而StringBuilder可以更高效一些
2.2 阅读jdk文档,查询StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?
- 将 char 数组参数的字符串表示形式追加到此序列。按顺序追加 String 变量中的字符,此序列将增加该变量的长度。如果 str 为 null,则追加 4 个字符 "null"。
- 使用动态数组
- 按顺序追加 String 变量中的字符,此序列将增加该变量的长度。如果 str 为 null,则追加 4 个字符 "null"。 ##3.字符串与字符串池
3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);
运行结果是true,因为str1和str2在同一个引用内存,内容也一样,所以相等时正确的
3.2 重点:对基本类型我们可以使用比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用比较?应该怎样比较他们的值是否相等呢? - 因为引用类型所在的内存空间不一样,尽管他们内容会一样。
- 使用equals函数进行比较
4.Wrapper(包装类)
4.1 Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;这一串命令中包含了些什么操作?
- 因为这一命令行进行了自动装箱。
- 自动装箱和自动拆箱
4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢? - 因为有时候数据类型的转换是容易出错的
- 方便用户进行类型转换和降低了错误率
5实验总结
5.1 结对编程实践:使用结对编程的方式完成本周编程题目,即两个人同时合作完成实验题目(可1题也可多题,但最好是是两个人都没做过的题目)。推荐实施步骤:1.两个人坐在同一台电脑屏幕前判题,讨论、决定大概由谁先写。2. 1个人先编5分钟(自己商量多少分钟),同时另一个人观察对方编程或者查相关资料。3. 5分钟后,简单讨论后,换另外一个人继续编(请一定要换,另一个人如果无法接受应由第一个人讲解大概思路以方便其接受)。并完成如下作业:a.描述结对队友姓名、结对过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。b.结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会(如是否有利于自己编程水平的提高、是否有利于开拓编程思路)。

- 队友名字为宾钧荣,两个结对编程第一个pta上的java程序
- 结对编程还是要看人,如果两个人水平差不多对两个人都是很大的促进。由于我们两个会的不多,所以我们的编程过程十分痛苦,经常两眼相望无言。
5.2Pta-1综合小测验
用switch对输入的内容进行判断,fib直接用fib构建的函数打印出结果。(但是斐波那契数列不会构建)。sort选项需要用Arrays对数组进行升序排列。search的话也是需要Arrays对数组进行查找。获取身份证的话用String.substring对数组进行提取
PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢? - 主要还是要用string和arrays对数组进行处理,先获取身份证年月日信息,对此进行排序。然后依次按照格式输出。
- 用string.substring提出年月日信息,先用sort排序,然后倒着输出就是降序了。
5.4PTA-4动态数组
打印九九乘法表这个通过两个for循环可以办到,主要还是数组的存入和输出好难啊。
**5.5 (重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList? - 考察了用add添加元素到尾部,或者指定位置。clear,remove等基本操作,虽然简单,可是我还是写不出完整代码并且做对。特别是遍历这方面。
- ArrayList可以比较轻易改变确定数组中的元素
3.码云及PTA
3.1码云代码提交记录

3.2截图题级“java基本语法”pta提交列表

3.3使用老师发的jar程序统计每周的代码量
| 周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
|---|---|---|---|---|
| 2 | 265 | 265 | 9 | 9 |

201621123075 Week02-Java基本语法与类库的更多相关文章
- 第2周作业-Java基本语法与类库(20170227-20170304)
本周学习总结 (1)这周学习认识和熟悉了java的一些类型和变量: (2)学习了java的运算符基本使用方法: (3)了解了如何建立远程仓库和本地仓库,和如何让java代码在临时储存,本地仓库和远程仓 ...
- Java第2次实验提纲(Java基本语法与类库)
1. 使用Git克隆(clone)项目到你的Eclipse项目中 见以下参考资料中的3 从码云将项目clone到你的电脑 重要提示: 使用Git来管理你的代码以后,当你在本机Eclipse项目中开始编 ...
- Java第02次实验提纲(Java基本语法与类库)
1. 熟悉Git 1.1 学会使用网页版的操作代码仓库(gitee) 申请账号,然后根据老师提供的链接或者二维码加入团队,然后修改昵称. fork老师提供的代码库项目,新建自己学号命名的文件并上传一些 ...
- 第2周作业-Java基本语法与类库
1. 本周学习总结 答:① 定义流程控制的各种条件式是同以前学习的一样,要善于运用快捷键.(例如`a/t` + `/` ) ② 熟悉输入输出的使用,注意输入的变量类型使用相应的输入类. ③ 数组对象: ...
- 201521123044 《Java程序设计》第2周作业-Java基本语法与类库
1. 本章学习总结 ·1.浮点型的不精确,不能简单的像C语言一样用float或者double来定义.在java中有更精确的BigDecimal类. 举例:BigDecimal bd1= new Big ...
- 201521123053 <<Java基本语法与类库>>第二周
1.本周学习总结 这是第二周学习了,还是感觉吃力,慢慢来吧 .知识总是一点一点进到脑子里,虽然头小,但总会进来不是! 知识储备: A.整形变量按照长度分为byte.short.int.long. ...
- [转]深入理解Java 8 Lambda(类库篇——Streams API,Collectors和并行)
以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-l ...
- Java 的 JSON 开源类库选择比较(zz)
在看了作者的介绍,然后我又到mvnrepository上去看了各个库的的使用数之后,发现只能在jackson和gson之间做选择. 以下是原文 有效选择七个关于Java的JSON开源类库 April ...
- java正则表达式语法详解及其使用代码实例
原文地址 译者序(下载代码) 正则表达式善于处理文本,对匹配.搜索和替换等操作都有意想不到的作用.正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率. ...
随机推荐
- Docker:Docker打包Web API成镜像并上传到Docker Hub(2)
Docker官方镜像:https://hub.docker.com/: 本文将把一个webapi制作成docker镜像 一.Docker命令 打开Docker Quickstart,有以下常用的命令 ...
- Git换行符是如何精确控制的
Git换行符是如何精确控制的 Checkout Windows-style, commit Unix-style Git will convert LF to CRLF when checking o ...
- 发布WebApi项目时包含XML文档文件
Open your publishprofile (*.pubxml) and include this code into "Project" element: <Item ...
- centos7使用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法
由于是本地yum源安装软件,无法联网,因此使用yum安装软件时报了错,解决方法是: 打开vi /etc/resolv.conf文件 新增内容如下: nameserver 8.8.8.8 nameser ...
- Python自然语言处理笔记【一】文本分类之监督式分类
一.分类问题 分类是为了给那些已经给定的输入选择正确的标签. 在基本的分类任务中,每个输入都被认为与其他的输入是隔离的.每个类别的标签集是预先定义好的(只有把类别划分好了,才能给输入划分类别). 分类 ...
- flutter 获取设备屏幕大小
import 'dart:ui'; var s = window.physicalSize;print(s);
- Docker Overlay 工作原理
Docker 原生Overlay 网络工作流程 如图:有两个Container 独立的容器节点.他们通过Overlay网路进行通信. 网卡设备 Container eth0:eth0它是Overlay ...
- Shell 变量、脚本参数
定义变量:可将脚本或者多个命令定义成一个变量. ()格式n(){脚本命令}. 脚本常用参数 命令:seq –w 0 23 #以01开头往上的. 命令:echo –ne #输出n换行,e扩展. 命令:b ...
- weex安装失败,按照官网步骤多次失败后成功
在安装Weex Toolkit之前,需要确保安装了node, npm. yangfeifei:~ yff$ node -v v6.10.2 yangfeifei:~ yff$ npm -v 3.10. ...
- 2018年天梯赛LV2题目汇总小结
Ⅰ.L2-1 分而治之---邻接表 分而治之,各个击破是兵家常用的策略之一.在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破.为此参谋部提供了若干打击方案.本题 ...