zoukankan      html  css  js  c++  java
  • Week02Java基本语法与类库

    1.本周学习总结

    • boolean类型:与c语言中不同,java中只能用true和false。
    • 引用:相当于c语言中的指针
    • 包装类:每一个基本类型都有相对应的包装类,对应的语法有自动拆箱和自动装箱。
    • 数组:和c语言不同的是,java可以直接简单构建不规则数组。
    • 学会了整型常量的应用,char型的应用,浮点型的应用。

    2. 书面作业

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

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

    使用char数组储存。
    1.2 分析其构造函数public String(char value[])的作用?
    把char型字符串数变成string型字符串
    1.3 阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?(重点)
    对string型字符串进行任何修改,都会变成新的字符串对象,所以更新string型字符串时不用增减删除啥的,而是直接用新的替代旧的。
    1.4 简述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)方法时,是如何实现添加字符的操作?
    追加char数组参数到此序列的子数组的字符串表示形式,按顺序追加string变量中的字符,接在上个字符串末尾,然后长度就增加了。

    3.字符串与字符串池

    3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
    String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1str2);
    str1和str2在同一个地址,内容也相同,所以正确输出true。
    3.2 重点:对基本类型我们可以使用
    比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用==比较?应该怎样比较他们的值是否相等呢?

    • 比较的不是对象本身的值,而是对象所处的内存地址,对象本身的值相等或者是对象所指向的内容相同,也不能用,因为操作符并不涉及到对象内容的比较。
    • 要比较他们的值应该使用equals进行比较。

    4.Wrapper(包装类)

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

    • 这一命令进行了自动拆箱
    • 自动拆箱and自动装箱
      4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?
    • 有的数据类型之间不能转化,易出错
    • 有了包装类你就可以进行很多想进行的转换,高效且不出错

    5.实验总结

    5.1 结对编程实践:使用结对编程的方式完成本周编程题目,即两个人同时合作完成实验题目(可1题也可多题,但最好是是两个人都没做过的题目)。推荐实施步骤:1.两个人坐在同一台电脑屏幕前判题,讨论、决定大概由谁先写。2. 1个人先编5分钟(自己商量多少分钟),同时另一个人观察对方编程或者查相关资料。3. 5分钟后,简单讨论后,换另外一个人继续编(请一定要换,另一个人如果无法接受应由第一个人讲解大概思路以方便其接受)。并完成如下作业:a.描述结对队友姓名、结对过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。b.结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会(如是否有利于自己编程水平的提高、是否有利于开拓编程思路)。
    我的搭档是陈星源,我们一起编写pta-8。我觉得有时候能1+1>2,有时候反而事倍功半,因为每个人的思路不同,另一个人接着编写时并不能很好的衔接。如果思路相同的话,结对编程可以说是事半功倍了,但是即使思路不同,能从搭档的思路中有所收获,也是一件好事。
    5.2 PTA-1综合小测验
    使用switch对输入内容来判断,得到身份信息用函数String.substring对数组中的信息进行获取。但是不懂那个数列怎么构建,一头雾水。
    5.3 PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?
    利用String和Array两个类对数组进行数据处理,获取年月日信息,然后进行排序,最后依次输出。
    输入时直接逆序,输出时就是倒叙。
    5.4 PTA-4动态数组
    建立二维数组然后用for循环,但是不懂在java怎么输出出来,比c来的复杂感觉。

    3. 码云及PTA

    3.1. 码云代码提交记录

    在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图
    3.2 截图题集“Java基本语法”PTA提交列表

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

    注意:请使用学姐更新的1.0版,使用新版前请先删除以前information.txt

  • 相关阅读:
    URAL 2067 Friends and Berries (推理,数学)
    URAL 2070 Interesting Numbers (找规律)
    URAL 2073 Log Files (模拟)
    URAL 2069 Hard Rock (最短路)
    URAL 2068 Game of Nuts (博弈)
    URAL 2066 Simple Expression (水题,暴力)
    URAL 2065 Different Sums (找规律)
    UVa 1640 The Counting Problem (数学,区间计数)
    UVa 1630 Folding (区间DP)
    UVa 1629 Cake slicing (记忆化搜索)
  • 原文地址:https://www.cnblogs.com/cwj1118/p/7582013.html
Copyright © 2011-2022 走看看