JAVA 第三周学习总结
20175308 2018-2019-2 《Java程序设计》第三周学习总结
教材学习内容总结
本周的学习内容为整个第四章的内容,学习中感觉知识点既多又杂,故在总结时尽量选用重要的或高度概括的知识点。
- 面向对象语言特点:封装性、继承、多态
- 类:类是java程序的基本要素,一个java程序就是由若干个类所构成,类是java语言中最重要的数据类型,类声明的变量被称为对象变量
- 类、对象、方法三者的关系(理解):对象作为类的实例,方法是对象的行为。对象操作自己的变量体现了对象的属性,对象调用类中的方法体现了对象的行为
- 局部变量的名字与成员变量的名字相同,那么成员变量在该方法内将暂时失效,如果仍想使用成员变量,必须使用关键字“this”
- 避免使用空对象,否则在运行时会出现异常NoPointerException。这是因为对象可以动态地被分配实体,所以编译器对空对象不会做检查,即可编译但不可运行
- 参数传值:传值:传递的是值的副本。方法中对副本做修改,不会影响到调用方。传引用:传递的是引用的副本,共用一个内存,会影响到调用方。此时,形参和实参指向同一个内存地址。对引用副本本身(对象地址)的修改,如设置为null,重新指向其他对象,不会影响到调用方
- 参数传值总结:基本类型(byte,short,int,long,double,float,char,boolean)为传值;对象类型(Object,数组,容器)为传引用;String、Integer、Double等immutable类型因为类的变量设为final属性,无法被修改,只能重新赋值或生成对象。当Integer作为方法参数传递时,对其赋值会导致原有的引用被指向了方法内的栈地址,失去原有的的地址指向,所以对赋值后的Integer做任何操作都不会影响原有值。
- 成员变量可以分为实例变量和类变量。用static修饰的变量为类变量,否则称作实例变量。分配给不同对象的实例变量占有不同的内存空间,改变其中一个对象的实例变量不会影响其他对象的实例变量,而类变量则被所有对象共享,无论哪个对象修改了类变量,类变量本身的值都发生了改变。
- Java类库中提供了许多很有用的类,如Math类,该类中所有方法都是static方法。在实际操作中,调用一些类库中已经存好的方法可以让编程编的简单,如应用Arrays.sort()可以将数组排列好。
教材学习中的问题和解决过程
- 问题1:在之前的学习中,已经了解到传引用的概念,但是在4.5中又提到传具体值,发生了一些混淆与记忆不清。
- 问题1解决方案:参考相关博客,分情待传值数据类型,发现了混淆的点与正确清晰的概念。相关博客链接附在最后的参考中。
- 问题2:数组传值是在传引用,我想到当指向改变后,原有的存储空间是否会被释放。
- 问题2解决方案:仔细看书在书中p66早已经提到了java内置的垃圾收集机制,当堆中分配的实体不会被任何对象引用时,便会释放实体在堆中占用的内存。
- 问题3:如图:
binary是二进制的意思,为什么二进制出现在搜索数组的方法中
- 问题3解决方案:通过搜寻资料,查阅字典,发现binary在此处代表该方法是通过二分法来进行查找的。
代码调试中的问题和解决过程
- 问题1:教材课后习题p109(3),通过读代码得出的数值为21,而实际运行得出的数值为27
- 问题1解决方案:仔细观察代码
class B {
int n;
static int sum=0;
····
问题出在static上,在给b2进行操作时,sum的初始值此时还在保持b1操作完成后的6。将static删除后再运行,发现此时结果为21!
- 问题2:教材课后习题最后一道大题,调用方法时出现NullPointerException错误
- 问题2解决方案:修改方法有两种,第一种是我自行摸索出的,将给Amount和speed加static前缀,而后在show中直接调属性值,但这样不符合调用方法的要求。第二种不算方法,准确说是纠正错误,原来是在编程的时候粗心没有写好setCPU语句和setHardDisk语句,才导致错误,着实该打。
代码托管
上周考试错题总结
-
构造方法概念掌握不清,构造方法的定义如下:
(1) 方法名必须与类名相同。
(2)不要声明返回类型。
(3)不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
所以,两种方法分别为Dog(int m),Dog(double m),下文方法并非构造方法。
感悟
随着学习的深入,java语言越来越清晰的呈现在了我的面前,接踵而来的就是数不清的知识点,自学java有自己动手找到答案的锻炼机会,但是缺点便是没有办法分清重点与否,所以驳杂的知识点便没有办法很清晰的分清主次,只能囫囵个的记忆。在本章的练习中就多次发生了对于概念记忆不清引起的错误。同时,在实践中我也理解了为什么娄老师会对英文单词量那么看重,比如之前我列举过的binary为什么会出现在数组查找的方法中,如果我品读出了二分法的意味,便不至于当成一个问题去研究,现在把它记下来,当作以后努力背单词的一个警醒。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 41/41 | 2/2 | 20/20 | |
第二周 | 391/432 | 1/3 | 18/38 | |
第三周 | 841/1273 | 2/5 | 22/60 |
参考资料
https://blog.csdn.net/weixin_36759405/article/details/82764339
JAVA 第三周学习总结的更多相关文章
- 20165210 Java第三周学习总结
20165210 Java第三周学习总结 教材学习内容总结 - 第四章学习总结 编程语言的几个发展阶段: 面向机器语言 面向过程语言 面向对象语言 类: 类声明: class People { ... ...
- 20145304 Java第三周学习报告
20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...
- JAVA第三周学习总结
20175303 2018-2019-2 <Java程序设计>第三周学习总结 教材学习内容总结 •编程语言的发展分为三个阶段,分别是:面向机器,面向过程,面向对象的语言.Java属于面向对 ...
- java第三周学习
这一周学习的是java数组面向对象 数组中存放的数据的类型:既可以是基本数据类型也可以是引用数据类型. 数组的定义方式: 1 数据类型[] 数组名; 2 数据类型 数组名[]; 数组的初始化: 1.静 ...
- 20165221 JAVA第三周学习心得
知识点回顾 类与对象学习总结 类:java作为面向对象型语言具有三个特性:①封装性.②继承性.③多态性.java中类是基本要素,类声明的变量叫对象.在类中定义体的函数题叫方法. 类与程序的基本结构: ...
- Java第三周学习日记
Day01 1.线程 进程:进程就是正在运行的应用程序.进程负责了内存空间的划分. 线程:一个进程中的代码是由线程去执行的,线程也就是其中一个执行路径. 多线程:一个进程中有多个线程可以同时执行任务. ...
- 201521123093 java 第三周学习总结
1.本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 本周学习总结: ...
- 20165220 Java第三周学习总结
1.教材学习内容总结 类与对象 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例 为个别对象的数据成员指定值的方式是:对象.对象成员 注意“一类一文件” 类在定义时要使用关键词 ...
- 20165326 java第三周学习笔记
纸质学习笔记 代码托管
随机推荐
- POJ3159(KB4-K 差分约束)
Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 33283 Accepted: 9334 Descrip ...
- POJ3261(SummerTrainingDay10-G 后缀数组)
Milk Patterns Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 15974 Accepted: 7041 Ca ...
- Code Signal_练习题_alphabeticShift
Given a string, replace each its character by the next one in the English alphabet (z would be repla ...
- 常见Java问题二
1.什么是B/S架构?什么是C/S架构? B/S browser/server Web应用程序 C/S Client/Server 桌面应用程序 2.String str="www" ...
- C# 如何防止重放攻击
重放攻击 重放攻击是指黑客通过抓包的方式,得到客户端的请求数据及请求连接,重复的向服务器发送请求的行为. 比如你有一个 “购买” 的操作,当你点击购买按钮时,向服务器发送购买的请求.而这时黑客对你的请 ...
- PostGIS安装
PostGIS安装 1.软件下载 postgresql-9.6.1-1-windows-x64-binaries.zip https://www.postgresql.org/download/win ...
- nginx 配置 非80 的其他 端口
如果nginx的监听端口不是默认的80端口,改为其他非80端口后,后端服务tomcat中的request.getServerPort()方法无法获得正确的端口号,仍然返回到80端口.在response ...
- smarty详细使用教程(韩顺平smarty模板技术笔记)
MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...
- [经典bug]弹框关闭按钮点击后程序闪退
问题背景: 业务上遇到一个很诡异的问题:弹框界面上有一个关闭按钮,切换后台再返回后,点击关闭按钮,部分机型上会直接崩溃.点击手机返回键关闭界面则正常. 问题原因: 点击关闭按钮的操作属于UI线程,直接 ...
- LeetCode题解之Convert Sorted List to Binary Search Tree
1.题目描述 2.题目描述 使用快慢指针寻找链表中间值. 3.代码 TreeNode* sortedListToBST(ListNode* head) { if (head == NULL) retu ...