1.本周学习总结

答:上课老师介绍了Java基本的数据类型,需要注意的地方有:**java的整型数都为带符号数**,**byte类型范围(-127,128)太小,所以我们一般不使用byte型,byte型常与switch结构一起用**、**对于一个浮点数来说,在Java中如果不加后缀就会被默认为double型数据**、**浮点数不够精确,不能够使用与金融计算,如果想要更精确的话就使用BigDecimal型**、**变量名一定要区分大小写,声明一个变量之后必须对变量进行一个显式的初始化**、**利用final声明的常量被赋值后不能再被修改**、**String对象创建后也不能再进行修改**。

2.书面作业

(1)使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?分析String使用什么来存储字符串的?分析其构造函数public String(char value[])的实现原理?分析public String replace(char oldChar, char newChar)的实现原理,回答String的不可变性在该函数中如何体现?(重点)



(2)为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?

答:因为String是不可变对象,所以每次修改字符串都是新建,非常浪费时间,而StringBuilder是可变的,利用append将修改的字符加到当前StringBuilder的末尾,效率会比String操作高很多。

(3)比较两个字符串的值是否相等?为什么不能用==直接进行比较?

答:如果直接用==比较的话,比较的是引用地址而不是字符串的值。

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

String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
答:该程序段输出的结果是true,因为这段代码共创建了2个字符串对象。第一次创建了一个对象是str1,第二次str2并不是创建新的对象,而是str2直接引用str1,第三次又新建了一个str3对象;上题也回答了==比较的是引用地址,所以str1和str2是相等的。

(5)Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?

答:因为基本类型的值就是一个数字或者一个字符又或者是一个布尔值,引用类型的值就是指向内存空间的地址,所以100就是数值100的本身,i是指向100的内存空间地址,因此100可以赋值给i。

(6)尝试分析下面代码输出结果

Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
答:Integer的范围是(-127,128),所以第一个结果是true,第二个结果是false,因为128不在Integer范围内,所以i1和i2比较的不是128这个数值,而是它们的地址。

(7)package与javac、 java、 -classpath、 -d

在 com.ibm包中编写 StringUtil类,内有一方法

public static void foo1(){
System.out.println(StringUtil.class+" method:foo1");
}

在edu.jmu包中编写Main类,调用com.ibm.StringUtil的foo1方法

7.1 尝试用命令行进行编译并运行,截图

7.2 将生成的StringUtil.class放到d盘的lib目录下,将Main.class在d:\test目录下,尝试命令行下运行,截图。



7.3 Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。

Eclipse中源代码放在src中,class文件放在bin中。

(8)自己在这门课的目标与计划

基础:只学过c语言,以前也没有经常写代码,没有计算过写过多少行
目标:能够熟练掌握Java语言,并且可以写出一些简单的Android的小项目。
计划:坚持每天至少花半个小时在Java上,要在编程这方面多花点时间,遇到问题就上网查或者问助教、同学和老师

(9)选做:公交卡里应该还有多少钱?请分析原因

答公交卡里应该是欠费了,我觉得原因可能是公交卡里的余额范围是一定的,如果超过这个范围的最大值或者小于范围的最小值,那么公交卡的余额系统可能就会发生数据的上溢或者下溢从而导致出错。

3.使用码云管理Java代码

4.PTA实验总结

(1)问题:每次拿到题目都会忘记先分析再开始做,所以每次很容易写到一半就没了思路,然后不得不重写
解决方法:拿到题目先思考如何实现题目的要求,然后再写伪代码,最后再开始编程
(2)问题:在编写第一题的时候,因为digits数组的原因,出现了一个java.lang.nullpointerexception错误
解决方法:重新new了一个digits数组
(3)问题:拼接字符串时没有使用StringBuilder,然后程序一直得不到正确的答案
解决方法:最后使用StringBuilder然后.append的方法成功通过pta的提交
(4)问题:关于markdown的,复制粘贴图片有时候可以有时候加载不出来
解决方法:改为上传,上传比较稳定。
其他问题还在发现中。。。。。

201521123039《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. 从SAP顾问猝死事件谈顾问加班

    今天朋友圈盛传一则消息,说是南瑞集团的一名名为牛耕耘的SAP顾问因为工作强度大,连续不分昼夜加班而猝死在工作岗位上,遗留下年迈的父母.体弱的妻子.刚满周岁的孩子和巨额的债务.我无法证实该消息的真伪,但 ...

  2. Linux操作系统-安装JAVA

    首先准备好jdk文件(例如:本地已下载了jdk-6u33-linux-x64.bin),将它上传到路径 “/home/username/” 这个目录的下面 其次按步骤执行: 1.进入到 “/home/ ...

  3. 使用jdbc调用存储,函数

    public class JdbcTest {        private Connection conn = null;    private PreparedStatement pst = nu ...

  4. React&Webpack 环境安装

    react的安装依赖nodejs,nodejs安装下载可从http://nodejs.org/en/下载 1.   环境安装 1.1      创建lib目录 cd E:\ReactLib 1.2   ...

  5. 程序员/PM怎么让项目预估的时间更加准确

    项目时间的估算对项目的成败至关重要.项目时间管理包括了项目按时完成所需的各个过程.但是,在实际项目中,经常出现项目延期,估算严重不准确的现象. 一个我曾经共事过的很有经验的项目经理曾宣称说,他会拿程序 ...

  6. statement和preparedstatement的区别

    在执行SQL命令时,我们有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象.无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和 ...

  7. How to quickly become effective when joining a new company

    How to quickly become effective when joining a new company The other day my colleague Richard asked ...

  8. spring的Java配置入门(Spring Boot学习笔记之一)

    spring的Java配置 1.创建maven项目 使用idea创建maven项目,这里顺便提一下,idea真的比eclipse好用,早点熟悉吧.然后就是maven是java项目管理最主流的工具,自己 ...

  9. 设计一个程序能够将某一个目录下面的所有文件名打印出来---File类的使用

    ,设计一个程序能够将某一个目录下面的所有文件名打印出来 运用到的方法有:返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录:list()           测试此抽象路径名表示的 ...

  10. oracle之备份详解

    1.冷备份(执行冷备份前必须关闭数据库) 物理备份(备份物理数据库文件) 2.热备份(热备份是当数据库正在运行时进行数据备份的过程.执行热备份的前提是:数据库运行在可归档日志模式.适用于24X7不间断 ...