博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2016-2017-2 《Java程序设计》第3周学习总结
阅读量:4958 次
发布时间:2019-06-12

本文共 3234 字,大约阅读时间需要 10 分钟。

20155202张旭 2016-2017-2 《Java程序设计》第3周学习总结

教材学习内容总结

第四章:认识对象:

  • java两个类型系统:基本类型,类类型。
  • 定义“构造函数“是与类名称同名的方法。
  • 两个基本的标准类:java.util.Scanner , java.math.BigDecimal
  • 如果要求浮点数,别用==直接比较浮点数运算结果,调用equals()比较。
  • 看到new关键字,就是建立对象。
  • Integer提供compareTo()方法,与另一个Integer对象比较,打包值相同就返回0,小于Integer()值就返回-1,大于就返回1;
  • 使用Integer.valueOf()是为基本类型建立打包器的方式之一。
  • > java -Djava.long.Integer.IntegerCache.high=300 cc.openhome.Demo指定后,Integer.valueOf()就会针对-128~300建立打包器进行快速读取。
  • 数组基本上用来收集数据,是具有索引的数据结构。
  • for(int row : cords) 实际上row参考的对象就是一位数组对象,外层for循环就是循序取得cords参考对象的每个索引,将参考对象指定给int[]类型的row名称。
  • System.arraycopy()方法会使用原生方式复制每个索引元素。
  • Arrays.copyof()方法复制数组。Arrays.copyof(要复制的数组,该数组长度)。
  • 以""包括的字符串,只要内容完全相同(序列,大小写相同),无论程序代码出现几次,JVM只会建立一个String实例;
  • 比较对象实质内容是否相同,不要用"= =",要使用equals();
  • 使用name2=name1 + 连接字符串可以更改字符串内容。
  • for 中频繁使用+连接片段会产生新片段,可以改用StringBuilder来改善;
  • 不要将+用在重复性的连接场合。
  • 类定义时候使用class关键词,建立实例要用new关键词。以类名称命名的变量,称为参考名称或参考变量或参考。
  • 使用java.math.BigDecimal得到想要的精确度。

    第五章:对象封装

    关于构造函数:

  • 在函数内:创建对象时候,数据成员会初始化,如果没有指定初始值,则会使用默认值初始化。
  • 定义类时,如果没有写任何构造函数,编译程序会自动加入一个无参数,内容为空的构造函数。
  • this代表了调用另一种构造函数。
  • 看到首字母大写就知道它是类,通过类名称与"."运算符来存取,就知道它是static成员。

    教材学习中的问题和解决过程

    - 问题1:深层复制和浅层复制有什么区别?
  • 解决方案 :

    Java对象的深层复制是指Java对象A本身被clone成新对象B,同时A的属性也是被clone成新对象,赋值到A的各个属性上去,A与B的相同属性都引用到不同的对象;

    Java对象的浅层复制是指Java对象A本身被clone成新对象B,但A的属性没有被clone处理,只是把A的各个属性所指的对象赋值到B对应的属性上,A与B的相同属性都引用到同一个对象。

  • 在java中,默认是浅层复制的,如果要复制的对象中只含有基本数据类型和String类型, 那么浅层复制和浅层复制是没有区别的,所以你可以放心的使用默认的浅层复制,如果属性有Date或其他自定的数据类,则一定的小心了,因为这时浅层复制后对象B的属性birthday与原始对象A的对应属性birthday,都是引用到同一个对象TestVo , 如果通过B.birthday的方法改了TestVo的值,则修改会影响到A.birthday,这时也就会发生互串的情况

    - 问题2:java 为什么要有装箱和拆箱?
  • 解决方案:
  • 把一个基本类型包装成一个类,一个是可以使这个类型具有很多可以调用的方法。二个是Java向面像对象语言的靠近。其实Java还不算是很纯的面向对象的语言。真正的面向对象,是没有基本数据类型的。它只有一种类型,就是对象。三个是在泛型中,基本类型是不可以做泛型参数的。

    如:
    List<int> list = new ArrayList<int> ();这是不合法的。你只能这个样写List<Integer> list = new ArrayList<Integer> ();也就是要用int型的包装类类型来解决基本类型不可以做泛型参数的问题 。 一名话,包装类有更多的方法和用途, 而这是基本类型没有的。

代码调试中的问题和解决过程

- 问题1:第三章说局部变量必须赋初值,但是第四章猜数游戏中 int guess 并未赋初值也能编译成功是什么原因啊

1072527-20170312165700232-898122572.png

  • 解决方案:

    在int guess; 下面加一行System.out.println(guess);问题出现了
    1072527-20170312165851514-325410857.png

    应该是编译环境问题,在IDEA和在vim里编译结果不一样,vim里就显示错误。输入30多次才有答案。

- 问题2:for(int row : cords) 到底是什么意思?

1072527-20170312170028576-1695572355.png

  • 解决方案:实际上row参考的对象就是一位数组对象,外层for循环就是循序取得cords参考对象的每个索引,将参考对象指定给int[]类型的row名称。
  • 本题中是将arr数组中的东西都给用row这个名称表示。

  • 代码提交过程截图:
    • 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图

1072527-20170312174027061-442715871.png

1072527-20170312174037201-512939937.png

  • 代码量截图:
    • 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图

      1072527-20170312174018514-679531829.png

      上周考试错题总结

  1. 填空:Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . –name *.java -ctime 2)。
  2. 判断:教材P51,第8 题 ,执行命令 java –cp classes cc.openhome.Main 和cd classes; java cc.openhome.Main;cd .. 等价。(OK)
  3. CH03 填空:~0b1011的十进制值是(-12)
  4. CH03 填空 :0x10%9 的结果是( 7 )
  5. CH03 填空 :0x10&9 的结果是(0)
  6. CH03 填空: int i=3; System.out.println(++i);的结果是(4)
  7. CH03 填空:编译p60 Comparison.java的命令为(javc –d xxx Comparison.java
  8. CH03 判断:P64 Shift.java中第三个printf的输出结果是”2的2次方:4”。(X)
  9. CH03 填空:运行p69 Odd.class的命令为(java cc.openhome.Odd)。

其他(感悟、思考等,可选)

这周内容很多,所以问题比较多,上网也查了很多,懂了许多,但是还是要多编程,编程行数还是不够,多加练习。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 4/4 18/38
第三周 413/1000 5/7 20/60

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:,

  • 计划学习时间:18小时

  • 实际学习时间:20小时

  • 改进情况:
    很好,超过了预计时间。
  • 有空多看看

参考资料

  • ...www.cnblogs.com/rocedu/p/5182332.html)
  • ...

转载于:https://www.cnblogs.com/zx20155202/p/6538596.html

你可能感兴趣的文章
QTP 捕获对象模式切换
查看>>
poi操作Excel相关对象属性介绍及中级应用
查看>>
mysql数据类型
查看>>
1.MyBaits无代理全套增删改
查看>>
spring(二)
查看>>
Oracle的汉字转拼音首字母的函数
查看>>
排序算法
查看>>
GAN生成图像论文总结
查看>>
(转)让ubuntu9.10开机自动挂载NTFS分区
查看>>
presentModalViewController 的动画效果
查看>>
windows mobile 程序控件置顶
查看>>
ORA-02447: cannot defer a constraint that is not deferrable
查看>>
EditPlus注册码
查看>>
servlet+jsp+java实现Web应用
查看>>
乔坟往事-目录
查看>>
MAMP添加mysql的环境变量
查看>>
css3实现漂亮的倒影效果
查看>>
c# int类型的转datetime类型
查看>>
简单工厂模式
查看>>
全球手机芯片产业格局
查看>>