201621123021 《Java程序设计》第2周学习总结

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

1. 本周学习总结

  • 本周了解了JAVA的基本数据类型,及其与C语言数据类型之间的差异。
  • 知道了JAVA如何对数组进行创建和运用。
  • 了解了JAVA的包装类,如自动装箱和自动拆箱。
  • 了解了JAVA作为面向对象的语言,其引用对象为常量池。
  • 知道了String类的一些运用。

2. 书面作业

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

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

public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final char value[]; private int hash; private static final long serialVersionUID = -6849794470754667710L; private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0]; public String() { this.value = "".value; }由JAVA源代码的这一段可知,String类使用字符数组来存储字符串。

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

  • char value[]是数组的声明,此构造函数的作用是将char数组转化成string类。

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

  • 函数中oldchar和newchar本身的字符未发生改变,而是新的字符串引用发生了改变。

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

  • String类是字符数组的延伸,JAVA的源码中将字符数组转化成字符串以实现新的数据类型String。
  • String是对字符数组的封装,通过这样使得JAVA在字符串中运用更加简单方便,并且可以直接使用封装后的函数。

2.StringBuilder

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

  • string若需要修改字符串需将在字符串常量池中创建新的字符串,以此来达到引用,而stringbuilder可以将一个字符串对象进行修改,从而在频繁的修改字符串时不需要浪费额外的内存空间来存放新的字符串。
  • 在PTA-2中我们要实现字符串的拼接可以需要频繁的修改字符串,而此时就需要使用StringBuilder而不是String.

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

  • 功能是在字符串数组的后面插入指定内容。
  • StringBuilder通过字符串数组来存放字符。
  • 字符串追加指定内容来添加字符。

3.字符串与字符串池

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

String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);

  • 最终输出结果为"true",因为str1和str2引用是在字符串常量池中同一个对象"hi"。
  • 这段代码创建了2个字符串对象,分别是"hi",和str3中声明创建新的字符串对象被str3所引用。

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

  • 因为基本类型用“==”可以比较他们的对象是否相等,而对于引用类型用“==”比较的是引用的地址是否相等,两者这件比较的对象不一样。
  • 比较引用类型中引用对象的值,可以使用equal函数进行比较。

3.Wrapper(包装类)

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

  • 将100赋值给i,可以实现引用类型的自动装箱可以代码结构更加简单。
  • 包涵了数据类型的自动装箱和自动拆箱操作。

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

  • 包装类型可以实现基本数据类型要实现时比较繁琐的操作,可以使数据的使用变得简单。
  • 包装类型的好处是可以实现基本类型与其的转换,也可以是基本数据类型难于实现的数据在包装类中快速实现。

5.实验总结

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

5.2 PTA-1综合小测验

  • 本实验使我对于String类中StringBuilder得以在一定程度内使用,StringBuiider能够在String引用类型中,对引用对象进行改变,避免了不断创建新的字符串的尴尬局面。

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

  • 本实验我是用JAVA中的函数substring在数字取所要比较数的范围,然后再用函数compareTo进行比较,运用冒泡排序法进行排序。
  • 若要将数值进行降序处理,可将改变将冒泡排序法的值大小比较变化下,对出生月份进行排序运用函数substring是身份证的取值范围发生改变。

5.4 PTA-4动态数组

  • 本实验要实现动态数组需要先创建一个二维数组,对于数组中未使用的空间使用NULL,来表示此位置为空,对于非空位置,实现输出。

5.5 (重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?

  • 本实验使我初步了解了ArrayList的使用,能够在一定的成都上使用动态数组。
  • 数组中运用ArrayList可以实现对内存空间进行自由分配,实现对空间的合理分配。

3. 码云及PTA

3.1. 码云代码提交记录

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

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

行数 新增行数 文件数 新增文件数
324 324 46 46
时间: 2024-10-15 14:13:34

201621123021 《Java程序设计》第2周学习总结的相关文章

20155336 2016-2017-2《JAVA程序设计》第二周学习总结

20155336 2016-2017-2 <JAVA 程序设计>第二周学习总结 教材学习内容 1: GIT版本检测 2: JAVA中基本类型 整数 字节 浮点数 字符 布尔(▲) 通过API可以得知各个类型可存储的数值范围 public class Range {public static void main(String[] args){ //byte.short.int.long的范围 System.out.printf("%d~%d%n", Byte.MIN_VALU

20145201 《Java程序设计》第一周学习总结

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了

20145224-陈颢文 《Java程序设计》第一周学习总结

20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大平台,其中Java SE是基础.Java的一大特点是它可以跨平台,而JVM对Java的跨平台提供了支持,它就类似于一个虚拟机,只要在当前平台安装了相应的JVM,Java程序就有了可以在此平台上运行的基础啦.JRE是Java的执行环境,在安装了JRE的计算机上就可以运行Java的程序了,当然光是可以跑代码对于程

20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结

学号 2016-2017-2 <Java程序设计>第九周学习总结 ##JDBC入门 在正式介绍JDBC前,已知JDBC是用来执行SQL的解决方案,开发人员使用JDBC的标准接口,开发人员不需接触底层数据库驱动程序的差异性. 本章,我们需要了解JDBC与API使用和概念,我们先要认识应用程序如何与数据库进行沟通,数据库本身是一种独立运行的应用程旭,程序员撰写的应用程序是利用通信协议对数据库进行指令交换,以进行数据的增加删除以及查找. 通常应用程序会利用一组专门与数据库进行通信协议的链接库,以简化

20145326《Java程序设计》第二周学习总结

20145326<Java程序设计>第二周学习总结 教材学习内容总结 本周学习教材第三章,本章主要讲述了java语言中的一些基础语法,java是个支持面向对象的程序语言,但在正式进入面向对象支持语法的探讨前,对于类型.变量.运算符.流程控制等,这些各种程序语言都会有的基本语法元素,还是要有一定的基础.虽然各种程序语言都有这些基本语法元素,但千万别因此而轻忽它们,因为各种程序语言都有其诞生的宗旨与演化过程,对这些基本语法元素,也就会有其独有的特性. 1. 类型 在java的世界中,并非每个东西都

20145201 《Java程序设计》第一周学习总结(修改)

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j

20145238-荆玉茗 《Java程序设计》第一周学习总结

20145238 <Java程序设计>第一周学习总结 教材学习内容总结 Java三大平台:由于java领域的应用越来越广,根据不同级别的应用开发区分了不同的应用版本,后正式更名为Java SE,Java EE,Java ME. Java SE主要分为四个部分:JVM,JRE,JDK和JAVA语言. 了解JCP与JSR.RI.TCK的关系:JSR必须经过JCP投票通过才能成为最终的标准文件,JSR成为最终文件后对其成果做出免费且开发原始码的参考实现,称为RI,由TCK作为技术兼容测试工具箱. 了

201521123045 &lt;java程序设计&gt;第11周学习总结

201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问) import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.Condition; class Account{ private int balance; private Lock lock = new

20145311 《Java程序设计》第九周学习总结

20145311 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1JDBC 16.1.1JDBC简介 JDBC(Java DataBase Connectivity)是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性. 厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型: ·Type 1:JDBC-ODBC Bridge Driver·Type 2:Native API