201621044079《Java程序设计》第二周学习总结
Week02-Java基本语法与类库
1.本周学习总结
记录本周学习中的重点
尝试使用
原则:少而精,自己写。即使不超过5行也可,但请一定不要简单的复制粘贴
1.学习了Java的数据类型 int char boolean型 string型
2.重点的是string的不可变性 以及== 和equal的区别
3.动态数组
4.自动拆箱装箱
2. 书面作业
1.String-使用Eclipse关联jdk源代码
1.1 查看String对象的源代码(截图),分析String使用什么来存储字符串?
(1)string是最常见的引用类型 不同于C 但是和C的指针类似
(2)例如:String x ="abc"; x并不存放字符串对象abc 存放的是指向字符串对象abc的引用
(3)在本质上String使用字符型数组存放即char[]来存储字符串的
1.2 分析其构造函数public String(char value[])的作用?
该函数的作用:通过char数组,生成String字符串对象。接口中的参数是一个char数组。
1.3 阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?(重点)
在该函数中是先建立了一个新的字符串数组,然后将字符替换并复制到新数组后 所以实质是创建了一个新的String对象,而不是在原字符串进行修改
1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要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)方法时,是如何实现添加字符的操作?
将指定字符数组按顺序添加到StringBuilder的对象中。在它内部使用字符型数组来存放字符到字符串缓冲区中,通过将传入进去的字符转换成字符数组然后再添加到StringBuilder的对象中
3.字符串与字符串池
3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);
输出结果是“true”。一开始str1时创建"hi"字符串放入到常量池中,然后创建str2时,则会先常量池中搜索,如果搜索到则指向相同的对象,若未搜索到就创建新的放入常量池中。所以str1和str2指向的是同一个面向对象,所以答案为true.
创建了2个字符串对象
3.2 重点:对基本类型我们可以使用比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用比较?应该怎样比较他们的值是否相等呢?
拿String x ="abc"; 来举例 x并不存放字符串对象abc 而存放的是指向字符串对象abc的引用 类似c中的指针
所以用==并不表示两个值相等 而是表示的是指向存入字符串对象的引用
用equals 来比较值是否相等
4.Wrapper(包装类)
4.1 Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;这一串命令中包含了些什么操作?
使用的java的自动装箱的功能,功能就是可以将基本数据类型自动转换为对应的对象
题中的第一个命令是自动装箱将数字100转换为Integer类型,下一个命令自动拆箱将Integer类型转换为int类型,最后一个命令先拆箱再装箱。
4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?
Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型)相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。
5.实验总结
5.1 结对编程实践:使用结对编程的方式完成本周编程题目,即两个人同时合作完成实验题目(可1题也可多题,但最好是是两个人都没做过的题目)。推荐实施步骤:1.两个人坐在同一台电脑屏幕前判题,讨论、决定大概由谁先写。2. 1个人先编5分钟(自己商量多少分钟),同时另一个人观察对方编程或者查相关资料。3. 5分钟后,简单讨论后,换另外一个人继续编(请一定要换,另一个人如果无法接受应由第一个人讲解大概思路以方便其接受)。并完成如下作业:a.描述结对队友姓名、结对过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。b.结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会(如是否有利于自己编程水平的提高、是否有利于开拓编程思路)。
emmm 这个....根据自己的水平 并不能达到和别人共同讨论的状态 只能说有一部分的思路可以有的 然后可以试着自己打 但是错误会很多
大部分还是需要同学帮忙 至少比上一次的感受要好
队友名字 秦玉 秋菊 雯婷 晓菲 彩云
都是教我的同学........
我也很绝望
但是比上次痛苦少一点点点点吧.
5.2 PTA-1综合小测验
这道题可以利用switch语语句分成三个小题来做
第一个fib需要自己写出函数
public static int fib(int num){
if(num==1||num==2)
return 1;
return fib(num-1)+fib(num-2);
第二个sort 是进行排序的
Arrays.sort(num4); 可直接进行对数组的内容的排序
然后包裹输出System.out.println(Arrays.toString(num4));
第三个"getBirthDate":
直接将输入的身份证号剪切 输出即可
5.3 PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?
身份证排序这道题sort2主要是利用冒泡法进行对对出生年月日的排序
和PTA 身份证题目是一样的 仍然要用冒泡法1. 首先要剪切每个身份证
的6到14位 不包含14位 然后将其存入数组中 2.将数组中的元素一个个转成字符串形式 再将其转成int型进行比较 3.如果是降序排列利用for双循判断第一个和第二个 如果位置不正确借用temp 进行换位 一个个循环 依次类推 实现第一组的比较 然后 再进行第二次的循环 以此类推 借用temp 进行换位 一个个循环 则实现正确的降序排位
5.4 PTA-4动态数组
先创建一个二维数组 并对这个二维数组进行限定 利用for的双循环
将二维数组的内容输入 在输出的时候容易输出 在中间位置的要有7个位置
"%-7s" 但是最后一个并不需要有空格 所以在输出的时候要分开写
5.5 (重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?
emmm 这道题其实只要按照题目的要求 查到Arraylist的用法 即可写出 内容虽然多但是并不是很难 需要注意的几个点
1.System.out.println(strList.contains(a));这个是直接输出的布尔型 只能输出true 或者false
2. System.out.println(strList.lastIndexOf(a)); 输出倒数的下标
3. strList.clear(); 清空所有的元素
3. 码云及PTA
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图
3.2 截图题集“Java基本语法”PTA提交列表
3.3 使用老师发的jar程序统计每周的代码量
行数 | 新增行数 | 文件数 | 新增文件数 |
---|---|---|---|
337 | 337 | 97 | 97 |
201621044079《Java程序设计》第二周学习总结的更多相关文章
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 201521123063 JAVA程序设计 第二周学习总结
1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...
- 2017面向对象程序设计(Java)第二周学习总结
2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结
丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...
- 201521044152<java程序设计>第一周学习总结
本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
- 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结
这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...
- 杨其菊201771010134《面向对象程序设计Java》第二周学习总结
第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...
- 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
随机推荐
- RPAD()和LPAD()函数进行字符串的填充
RPAD()函数从右边对字符串使用指定的字符进行填充. 格式:RPAD(string,padded_length,[pad_string]) string 表示:被填充的字符串. padded_len ...
- Angularjs基础(四)
AngularJS过滤器 过滤器可以使用一个管道符(|)添加到表达式和指令中. AngularJS过滤器可用于转换数据: currency 格式化数字为货币格式 filter 从数组中选着应子集. l ...
- poj 3177 Redundant Paths 求最少添加几条边成为双联通图: tarjan O(E)
/** problem: http://poj.org/problem?id=3177 tarjan blog: https://blog.csdn.net/reverie_mjp/article/d ...
- windows10安装mysql8.0.11(免安装版)
1.MySQL8.0.11下载网址:https://dev.mysql.com/downloads/mysql/ 2.配置环境变量:我的电脑->属性->高级系统设置->环境变量-&g ...
- 三角形div原理(小知识点)
三角形div其实就是从边框的演变过程 #sider2{ width: 100px; height: 100px; border-top: 30px solid #000; border-right: ...
- Cacti 学习笔记
Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因此,snmp和rrdto ...
- php面向对象基础知识整理之类中的属性和方法的使用
<?php /** * class Index * 类包含什么 * 1.创建类 * 2.类的属性和类中方法 * 3.类中访问修饰符 * 4.类的封装.继承.多态 */ // 创建类,创建的类名是 ...
- 如何用Python做自动化特征工程
机器学习的模型训练越来越自动化,但特征工程还是一个漫长的手动过程,依赖于专业的领域知识,直觉和数据处理.而特征选取恰恰是机器学习重要的先期步骤,虽然不如模型训练那样能产生直接可用的结果.本文作者将使用 ...
- MongoDB在单机上搭建分片副本集群(windows)
------------------------------1.安装MongoDB...... ------------------------------2.准备好文件夹 --config:配置文件 ...
- ecshop 漏洞如何修复 补丁升级与安全修复详情
目前ecshop漏洞大面积爆发,包括最新版的ecshop 3.0,ecshop 4.0,ecshop2.7.3全系列版本都存在着高危网站漏洞,导致网站被黑,被篡改,被挂马,许多商城系统深受其漏洞的攻击 ...