1.本周学习总结

  本周学习了java的数据类型,有基本数据类型和引用数据类型(不同c),特有的boolean类型,取值只有true和false。还有包装类和数组,每一个基本类型都有相对应的包装类,对应的语法有自动拆箱和自动装箱。数组的构建也和c语言有一些区别,java还可以直接简单构建不规则数组

2.书面作业

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

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



String用char【】数组来存储字符串。

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



用来复制value这个数组

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



先对新旧数组进行判断,并对原数组进行判断,要是=oldchar【】,就直接返回。否则就将newchar【】de值换成旧数组的值。所以说string不可变性

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

使用string可以更简洁高效快速的处理字符串,出错率低。

2.StringBuilder

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

由1知string的对象不可变性,所以用string频繁修改字符会占用很大内存,而StringBuilder可以更高效一些

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

  • 将 char 数组参数的字符串表示形式追加到此序列。按顺序追加 String 变量中的字符,此序列将增加该变量的长度。如果 str 为 null,则追加 4 个字符 "null"。
  • 使用动态数组
  • 按顺序追加 String 变量中的字符,此序列将增加该变量的长度。如果 str 为 null,则追加 4 个字符 "null"。 ##3.字符串与字符串池

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

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


    运行结果是true,因为str1和str2在同一个引用内存,内容也一样,所以相等时正确的

    3.2 重点:对基本类型我们可以使用比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用比较?应该怎样比较他们的值是否相等呢?
  • 因为引用类型所在的内存空间不一样,尽管他们内容会一样。
  • 使用equals函数进行比较

4.Wrapper(包装类)

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

  • 因为这一命令行进行了自动装箱。
  • 自动装箱和自动拆箱

    4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?
  • 因为有时候数据类型的转换是容易出错的
  • 方便用户进行类型转换和降低了错误率

5实验总结

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

  • 队友名字为宾钧荣,两个结对编程第一个pta上的java程序
  • 结对编程还是要看人,如果两个人水平差不多对两个人都是很大的促进。由于我们两个会的不多,所以我们的编程过程十分痛苦,经常两眼相望无言。

    5.2Pta-1综合小测验

    用switch对输入的内容进行判断,fib直接用fib构建的函数打印出结果。(但是斐波那契数列不会构建)。sort选项需要用Arrays对数组进行升序排列。search的话也是需要Arrays对数组进行查找。获取身份证的话用String.substring对数组进行提取

    PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?
  • 主要还是要用string和arrays对数组进行处理,先获取身份证年月日信息,对此进行排序。然后依次按照格式输出。
  • 用string.substring提出年月日信息,先用sort排序,然后倒着输出就是降序了。

    5.4PTA-4动态数组

    打印九九乘法表这个通过两个for循环可以办到,主要还是数组的存入和输出好难啊。

    **5.5 (重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?
  • 考察了用add添加元素到尾部,或者指定位置。clear,remove等基本操作,虽然简单,可是我还是写不出完整代码并且做对。特别是遍历这方面。
  • ArrayList可以比较轻易改变确定数组中的元素

3.码云及PTA

3.1码云代码提交记录

 ![](http://images2017.cnblogs.com/blog/1120964/201709/1120964-20170923004654196-1028385941.png)

3.2截图题级“java基本语法”pta提交列表

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

周次 总代码量 新增代码量 总文件数 新增文件数
2 265 265 9 9

201621123075 Week02-Java基本语法与类库的更多相关文章

  1. 第2周作业-Java基本语法与类库(20170227-20170304)

    本周学习总结 (1)这周学习认识和熟悉了java的一些类型和变量: (2)学习了java的运算符基本使用方法: (3)了解了如何建立远程仓库和本地仓库,和如何让java代码在临时储存,本地仓库和远程仓 ...

  2. Java第2次实验提纲(Java基本语法与类库)

    1. 使用Git克隆(clone)项目到你的Eclipse项目中 见以下参考资料中的3 从码云将项目clone到你的电脑 重要提示: 使用Git来管理你的代码以后,当你在本机Eclipse项目中开始编 ...

  3. Java第02次实验提纲(Java基本语法与类库)

    1. 熟悉Git 1.1 学会使用网页版的操作代码仓库(gitee) 申请账号,然后根据老师提供的链接或者二维码加入团队,然后修改昵称. fork老师提供的代码库项目,新建自己学号命名的文件并上传一些 ...

  4. 第2周作业-Java基本语法与类库

    1. 本周学习总结 答:① 定义流程控制的各种条件式是同以前学习的一样,要善于运用快捷键.(例如`a/t` + `/` ) ② 熟悉输入输出的使用,注意输入的变量类型使用相应的输入类. ③ 数组对象: ...

  5. 201521123044 《Java程序设计》第2周作业-Java基本语法与类库

    1. 本章学习总结 ·1.浮点型的不精确,不能简单的像C语言一样用float或者double来定义.在java中有更精确的BigDecimal类. 举例:BigDecimal bd1= new Big ...

  6. 201521123053 <<Java基本语法与类库>>第二周

    1.本周学习总结 这是第二周学习了,还是感觉吃力,慢慢来吧 .知识总是一点一点进到脑子里,虽然头小,但总会进来不是! 知识储备:   A.整形变量按照长度分为byte.short.int.long. ...

  7. [转]深入理解Java 8 Lambda(类库篇——Streams API,Collectors和并行)

    以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-l ...

  8. Java 的 JSON 开源类库选择比较(zz)

    在看了作者的介绍,然后我又到mvnrepository上去看了各个库的的使用数之后,发现只能在jackson和gson之间做选择. 以下是原文 有效选择七个关于Java的JSON开源类库 April  ...

  9. java正则表达式语法详解及其使用代码实例

    原文地址 译者序(下载代码) 正则表达式善于处理文本,对匹配.搜索和替换等操作都有意想不到的作用.正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率. ...

随机推荐

  1. JAVA:IDEA使用Hibernate(2)

    1.打开IDEA新建项目 勾选Hibernate.勾选下方生成相关配置和类 下方选择Download,如果使用本地已经下载的包则选择 Use Library ,路径选到包里面的require里导入即可 ...

  2. 二叉查找树ADT

    二叉查找树ADT 定义:是一个二叉树,其中每一个节点的值大于左子树的所有值而小于右子树的所有值 平衡二叉树:平衡是指一个二叉树的任何节点的深度均不得过深 AVL树 定义:是一个二叉查找树,每个节点的左 ...

  3. window中普通用户无法登录远程桌面

    解决方案就是将该用户加到 Remote Desktop Users 这个用户组中. 使用命令 net localgroup "Remote Desktop Users" 用户名 / ...

  4. Python学习笔记(1)__name__变量

    这是我在网上找到的一篇文章的标题. 本着学会了才是自己的,所以标题不变,自己试着再写一遍. 问题:__name__是什么? 背景:在学习编程规范的时候,我被要求函数的调用只能在__main()函数中使 ...

  5. RocketMQ使用笔记

    apache rocketmq document : http://rocketmq.apache.org/community/ rocketmq 工具下载地址:https://github.com/ ...

  6. ubuntu apache 配置虚拟主机 与 二级域名

    一.ubuntu 配置虚拟主机 方法一:添加端口号 第一步进入 /etc/apache2/sites-available/ 目录,将 000-default.conf 复制一份到当前目录下并重命名,然 ...

  7. 记账本微信小程序开发六

    记账本微信小程序开发六 我的界面 主界面

  8. 在python中使用正则表达式

    一.转义符 1.在python中的转义符 (1)\\n与\n的区别 (2)r"\next" 通过r来进行转义 (3)"\\\\d"与"\\d" ...

  9. 使用查询分析器和SQLCMD分别登录远程的SQL2005的1434端口

    SQLCMD是操作SQLSERVER的一个命令行工具, 而查询分析器是它的图形工具     查询分析器(SQL2005下叫managerment studio),连接远程的SQLSERVER2005, ...

  10. No Directionality widget found

    The problem is not that you have not wrapped your widgets into MaterialApp. As the documentation say ...