201621123005《JAVA程序设计》第二周学习总结

1. 本周学习总结##

本章学习了String 的不可变性、自动装箱和拆箱过程,并熟悉了动态数组等

Java中的应用,还有ArrayList的各种简单应用。

2. 书面作业

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

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



String使用char数组存储字符串

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

public String(char value[])函数是通过传入char数组,来构造String对象

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

字符串的不可变性不是对原来的字符串进行修改,而是返回已经修改的新字符串,即如果字符串一旦被改变,就会生成新的字符串。

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

String是一串字符串,根据需要而定,但字符数组和String也可以互相转化。

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

在用String修改字符串时每次都是删除旧的串,很降低效率,而使用StringBuilder时只是在字符串的末尾操作,比String要快,尤其实在数据量比较大的时候比较明显。

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

StringBuilder的append(char[] str)功能是拼接字符串,StringBuilder内部是使用char[] 数组来存放数组,是将传入的字符转化为字符数组后再·添加·

3.字符串与字符串池

3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:

String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);
创建了两个字符串对象,其中str1 和 str2是同一个对象,str3是用new新建的一个对象。

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

应该用.equals()来比较它们的值是否相等,因为对于引用类型,变量名并不是直接指向数据本身。

Wrapper(包装类)

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

基本类型存储的是数据本身,应用类型是引用类型,是间接的从地址获取数据,Integer x=100是自动装箱,int y = x+1是自动拆箱,x++;先拆箱再装箱

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

有了包装类,基本类型和其它类型便可以交互,不然我们还需要自己写一个类将各种所需要的变量包装起来。

实验总结

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


编程题有做的基本都是独立完成的,如果碰到不会的是通过百度和请教同学完成的

5.2 PTA-1综合小测验

这道题中的斐波那契数列刚开始我用以前C语言的方法去做斐波那契的函数,但却并不可行,所以最后将第一个和第二个数分别赋值为1进行相加,然后不停的赋值给下一个数再相加。此外本题也应用subsing()对字符串进行分割,import java.util.Arrays;Arrays.sort(digits

来对数字进行排序。

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

这道题我是用substring来获取它的年月日,用Collections.sort();

对数据进行升序排列,然后用.contains来判断要比较年月日属于哪个身份证号,再打印出升序所对应的身份证号,当需要降序时可用Collections.reverse();

5.4 PTA-4动态数组

之前因为对动态数组的理解不够,所以只会打印出乘法表,并不知道如何将乘法表放进数组,后来请教舍友后才做出来,str[i][j] = (i + 1) + "*" + (j + 1) + "=" + (i + 1) * (j + 1);并用String str1 = Arrays.deepToString(str);打印出来。

5.5 PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?

,ArrayList是一个动态数组,它可以动态的增加和减少元素,用.add()进行添加;.add(n,E)在第n个数之后添加E;list1.addAll(list2)将list2中的全部数据添加到list1中;list.remove(n)将list中第n个数据删除,;list.get ()进行获取;list.set ()进行修改;

3. 码云及PTA

3.1. 码云代码提交记录

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

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

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

201621123005《Java程序设计》第二周学习总结的更多相关文章

  1. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  2. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  3. 2017面向对象程序设计(Java)第二周学习总结

    2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结

    丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

  5. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  6. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  7. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  8. 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结

    这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...

  9. 杨其菊201771010134《面向对象程序设计Java》第二周学习总结

    第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...

  10. 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

随机推荐

  1. [2012-12-18 14:59:31]AS3 常用正则表达式的总结-不用google了,我帮收集的很多了

    正则表达式是一种通用的标准,大部分计算机语言都支持正则表达式,包括as3,这里转摘出了一些常用的正则表达式语句,大家用到的时候就不用自己写了.红色字体为常用正则:下面这个类是我自己写的一个示例,想必大 ...

  2. linux中uptime命令获取主机运行时间和查询系统负载信息

    系统中的uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系 ...

  3. sparkSQL实战详解

    摘要   如果要想真正的掌握sparkSQL编程,首先要对sparkSQL的整体框架以及sparkSQL到底能帮助我们解决什么问题有一个整体的认识,然后就是对各个层级关系有一个清晰的认识后,才能真正的 ...

  4. [caffe]caffe资料收集

    1.caffe主页,有各种tutorial. 2.Evan Shelhamer的tutorial,包括视频.

  5. JS 中根据iframe子页面自动iframe高度

    注意:为使页面有更好的兼容性,在使用以下代码前,请将aspx页中头部的<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional ...

  6. 20145216史婧瑶《Java 程序设计》第4周学习总结

    20145216 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 6.1 何谓继承 继承基本上就是避免多个类间重复定义共同行为. 在Java中,继承时使用exte ...

  7. 20145331实验五 Java网络编程及安全

    20145331魏澍琛 实验五 Java网络编程 实验内容 1.用书上的TCP代码,实现服务器与客户端. 2.客户端与服务器连接 3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码 ...

  8. SSH免密码登录Linux

    如果两台linux之间交互频繁,但是每次交互如果都需要输入密码,就会很麻烦,通过配置SSH就可以解决这一问题 下面就说下配置流程(下面流程在不同机器上全部操作一边) 1)cd ~到这个目录中 2)ss ...

  9. Java类继承关系中的初始化顺序

    Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释. 非继承关系中的初始化顺序 对于非继承关系,主类Ini ...

  10. [解决]JS失效,提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8

    上网找了找,木有找到相关的解决办法,索性自己试了试. 原页面是这样写的: <html> <head> <meta http-equiv="Content-Typ ...