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. Spring框架中Bean管理的常用注解

    1. @Component:组件.(作用在类上)可以作用在任何一个类上 2. Spring中提供@Component的三个衍生注解:(功能目前来讲是一致的) * @Controller -- 作用在W ...

  2. Oracle登录命令

    1.运行SQLPLUS工具 C:\Users\wd-pc>sqlplus 2.直接进入SQLPLUS命令提示符 C:\Users\wd-pc>sqlplus /nolog 3.以OS身份连 ...

  3. linux信号量初识

    以下程序使用信号量控制程序运行 "信号"量 "变"量 /*信号量(semaphore)是变量,是一种特殊的变量.它仅取正值. 对信息号量的操作只有2种:等待(w ...

  4. ApplicationContextAware学习--存疑问题

    先看下ApplicationContextAware的源码:     package org.springframework.context; import org.springframework.b ...

  5. 2018.10.23 vijo1243生产产品(单调队列优化dp)

    传送门 这道单调队列真的有点难写啊. 方程感觉挺简单的. f[i][j]f[i][j]f[i][j]表示在第iii个车间结束前jjj次步骤的最小代价. 然后用单调队列毒瘤优化一下就行了. 代码: #i ...

  6. 2018.09.26 bzoj1015: [JSOI2008]星球大战starwar(并查集)

    传送门 并查集经典题目. 传统题都是把删边变成倒着加边,这道题是需要倒着加点. 处理方法是将每个点与其他点的边用一个vector存起来,加点时用并查集统计答案就行了. 代码: #include< ...

  7. 2018.09.08 bzoj4518: [Sdoi2016]征途(斜率优化dp)

    传送门 把式子展开后发现就是要求: m∗(∑i=1msum′[i])−sum[n]2" role="presentation" style="position: ...

  8. C#和MatLab的混合编程(充分利用二者的优势)

    C#和MatLab的混合编程,充分利用了winform的直观显示和matlab的强大计算能力.在此以一个小例子的形式给大家讲述一下二者混合编程的实现. 一.软件的配置说明 C#版本:VS2010:Ma ...

  9. ubuntu编译centos7部署大象医生 dr-elephant

    github下载源码 ubuntu上安装play,配置好环境变量 暂时不支持基于spark2.x的编译,所以compile.conf中spark版本不变 调用build.sh开始编译 编译好后dist ...

  10. 20155327 2016-2017-4 《Java程序设计》第6周学习总结

    20155327 2016-2017-4 <Java程序设计>第6周学习总结 教材学习内容总结 理解流与IO 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两 ...