2016-2017-2 《Java程序设计》第3周学习总结
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 并未赋初值也能编译成功是什么原因啊
解决方案:
在int guess; 下面加一行System.out.println(guess);问题出现了
应该是编译环境问题,在IDEA和在vim里编译结果不一样,vim里就显示错误。输入30多次才有答案。
- 问题2:for(int row : cords) 到底是什么意思?
- 解决方案:实际上row参考的对象就是一位数组对象,外层for循环就是循序取得cords参考对象的每个索引,将参考对象指定给int[]类型的row名称。
- 本题中是将arr数组中的东西都给用row这个名称表示。
代码托管
- 代码提交过程截图:
- 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图
- 代码量截图:
运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图
上周考试错题总结
- 填空:Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . –name *.java -ctime 2)。
- 判断:教材P51,第8 题 ,执行命令 java –cp classes cc.openhome.Main 和cd classes; java cc.openhome.Main;cd .. 等价。(OK)
- CH03 填空:~0b1011的十进制值是(-12)
- CH03 填空 :0x10%9 的结果是( 7 )
- CH03 填空 :0x10&9 的结果是(0)
- CH03 填空: int i=3; System.out.println(++i);的结果是(4)
- CH03 填空:编译p60 Comparison.java的命令为(javc –d xxx Comparison.java
- CH03 判断:P64 Shift.java中第三个printf的输出结果是”2的2次方:4”。(X)
- 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小时
- 改进情况:
很好,超过了预计时间。
参考资料
- 《Java学习笔记(第8版)》学习指导
- ...www.cnblogs.com/rocedu/p/5182332.html)
...
2016-2017-2 《Java程序设计》第3周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- echarts仪表盘配置参数
require.config({ paths:{ echarts:"js/chart" } }); require([ 'echarts', 'echarts/chart/gaug ...
- (持续更新) CSS属性持续记录
可以去除ul的li标签自带的圆点list-style-type: none; 可以将自己的光标改变样式:cursor: pointer;
- UVa 10288 - Coupons(数学期望 + 递推)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- Loading dl-debug.c in gdb / Ubuntu 14.04.4 LTS
转自: https://stackoverflow.com/questions/36025694/loading-dl-debug-c-in-gdb-ubuntu-14-04-4-lts ====== ...
- `ECS弹性计算服务
云服务器(Elastic Compute Service 简称ECS)是一种简单高效,处理能力可弹性伸缩的计算服务.能快速构建更稳定.安全的应用,提升运维效率,降低IT成本. 云服务器ecs作用如下: ...
- iOS 二维码生成 记录一下
#import <CoreImage/CoreImage.h> @property (nonatomic, nonnull , strong) UIImageView *showImage ...
- pyhton 自动化pymysql操作mysqldb数据库增删改查封装
# coding=utf-8 import pymysql import os import configparser """ /* @:param: python ve ...
- Linux网卡别名
网卡别名是什么 IP别名就是一张物理网卡上配置多个IP,实现类似子接口之类的功能.从网络协议的角度来讲,下层总是为上层提供服务,一块网卡的MAC地址只要一一对应上层的一个IP地址,并且这个逻辑关系是合 ...
- HDU 2072(字符串的流式操作,学习了)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2072 单词数 Time Limit: 1000/1000 MS (Java/Others) Me ...
- staticmethod classmethod
1. 静态方法 @staticmethod 只是名义上归类管,实际上静态方法里访问不了类或者实例中的任何属性 2. 类方法 @classmethod 只能访问类变量,不能访问实例变量 3.属性方法 @ ...