java基础复习记录
java基础复习记录(数组、对象、异常)
数组
数组的定义
数组是相同类型数据的有序集合。如:篮球队就是一个数组,队员球服上有号码,相当于索引。通过某一个的某一个号码来确认是某一个队员。数组中索引从0开始。
数组创建声明
1、首先必须声明数组变量,一下为声明数组变量的语法:
dataType[] arrayRefVar; // 使用首选
或
dateType arrayRefVar[]; // 一般不用
int[] a; //创建变量名为a,数组类型为int的数组
int a[];
2、java语言使用new操作符了创建数组,语法如下:
dataType[] arrayRefVar = new dataTye[arraySize];
int[] a = new int[5]; // 创建长度为5的int类型数组
3、数组元素通过索引访问,数组索引从0开始。

4、获取数组长度。
arrays.length
数组基本特征
1、长度确定。一旦被创建,大小长度不可改变。
2、同一个数组的元素类型必须相同。
3、数组的类型可以是任何数组类型。
4、 数组的对象本身的堆中。
内存分析
1、内存分三部分:堆、栈、方法区
2、堆:存放new出来的对象和数组
3、存放基本变量类型,应用对象的变量
4、方法区:可以被所有线程共享,包括所有的class和static变量

生成数组的三步骤
1、声明数组
2、创建数组
3、初始化

稀疏数组

面向对象
java核心思想面向对象变成(OOP),面向对象:OO。
什么是面向对象
面向对象和面向过程
1、面向过程思想(微观操作):
做一件事情的步骤安排和规划,如:建筑第一步要挖机来挖地基、第二步要切砖师来切砖,第三步要水泥公司拉水泥来封顶。每一步都要详细规划。
2、面向对象思想(宏观把控):
要有分类的思维模式,进行抽象。思考首先要解决那些分类,然后对这些分类进行单独思考,最后才对某个分类下的细节进行面向过程的思考。如:总设计师对建筑进行设计,这栋要多少平米,地基多深,每个房子的构架怎么样等等。这些还没开工前就要提前想好整栋建筑的建法,和安排谁进行工作。
抽象
如:学生都有并且肯定有学号、班级等信息,可以抽象出来,学生的类就有学号、班级等。
如:人都一定会有性别、姓名等信息,抽象出来,人的类可以有的属性为性别、姓名等。
三大特征
封装:如:饮水器里的水,将水封装起来避免里与空气中的尘土接触而受污染,提供接口使用。
继承:如:儿子继承父亲的所有东西(财产)。
多态:如:同样是学习,有的人是学霸、有的人是学渣。同样的行为动作却有不同的形态。
类与对象
类是对某一分类的描述,对象是具体的事物。
如:对人的描述人有性别、姓名、年龄。通过这些信息你只能知道人都共有的一些属性。
对象:性别男、姓名周勇、年龄18。通过这些信息,你就能够确定是到是谁。

构造器
1、构造器要求方法名与类名一样,没有返回类型,void也不能写有
2、作用:赋初始值,可以在构造器中设置初始值。
3、一般系统默认生成无参构造。
4、有参构造一般在new是输入参数使用有参构造。


内存分析


封装
1、封装追求高内聚、低耦合。
2、属性私有,get/set
代码
1、封装类中使用private(私有)修饰属性后,在外部将无法通过对象点属性获取数据值。
2、封装后提供get和set方法,get方法获取封装类的值,set方法设置封装类的值。
3、作用:通过set方法设置范围:,如:人的年龄大于是1~120岁,可以在set方法中设置,如果超出这个范围,则错误。
public void setAge(int age) {
if (120 >= age && age > 0) {
this.age = age;
} else {
System.out.println("输入错误:");
}
}

封装的意义
1、提高程序安全性,保护数据
2、隐藏代码的实现细节
3、同意接口
4、系统可维护性增加了
继承
1、继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
2、extends的意思是“扩展”。子类是父类的扩展。
3、java中类只有单继承,没有多继承。
4、private私有的无法被继承

super和this
1、super指向继承的父类
2、this指向类自己本身

注意点:
super注意点:
1、super调用父类的构造方法,必须在构造方法的第一个
2、super必须只能出现在子类的方法或者构造方法中。
3、super和this不能同时调用构造方法。
定义一个有参构造同时也必须要定义一个无参构造,否则会报错。

方法重写

重写方法:需要有继承关系,子类重写父类的功能。
1、方法名必须相同
2、参数列表必须相同
3、修饰符:范围可扩大,但不能缩小。

4、抛出的异常:范围,可以被缩小,但不能扩大;classNotFoundException -->Exception(大)
重写的原因
1、父类的功能,子类不一定需要,或者不一定满足。
不能重写的方法
1、static 方法,属于类,它不属于实例。
2、final 常量;
3、private 方法。
多态
存在条件
1、有继承关系
2、子类重写父类方法
3、父类引用指向子类对象
编码:
1、父类引用指向子类
2、能调用子类重写的方法,调用到的是子类的方法
3、不能调用子类特有方法
4、可以调用父类自己定义的方法

instanceof和类型转换
instanceof (类型转换) 引用类型,判断一个对象是什么类型
instanceof 有父子关系就OK,没有父子关系就不行


抽象类
1、使用abstract修饰的类就是抽象类。
public abstract class Action(){...}
2、我定义了这个方法,但又不想去实现,可以使用抽象方法。抽象方法,只有方法名称,没有方法实现。
public abstract void doSomething();
3、抽象类的所有方法,继承了它的子类,子类必须实现抽象类的方法
4、作用:提高开发效率。如:要创建一个游戏角色,我们不可能从无到有创建,应该是在游戏所有英雄都有的特征上进行赋值。抽象出所有英雄都有的特征。
static
1、静态变量可以共享,直接就可以调用,不需要new后才能使用。

执行顺序:
1、首先执行static代码块
2、其次执行匿名代码块
3、然后执行构造方法

接口和实现定义


内部类

知识扩展


异常

1、异常体系结构,最高层是Throwable,
Error:虚拟机运行操作错误,一般与执行者无关。
Exception:一般是个人编码问题造成。
常见的错误有:

异常处理的五个关键字

代码

定义异常

这次的学习记录主要用于有基础的同学巩固和回顾基础。
学习观看的视频为:狂神说java零基础学习
java基础复习记录的更多相关文章
- Java基础复习笔记基本排序算法
Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
- 《Java基础复习》-控制执行流程
最近任务太多了,肝哭我了,boom 参考书目:Thinking in Java <Java基础复习>-控制执行流程 Java使用了C的所有流程控制语句 涉及关键字:if-else.whil ...
- 《Java基础复习》—常识与入门
突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...
- Java基础复习之数组
Java基础复习之:数组 简介 数组(Array):多个相同数据类型按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理 一维数组 一维数组的声明与初始化 int[] id ...
随机推荐
- C程序:年转化天
突然想算算自己到底活了多少天了,e,就是纯属为了好玩,毕竟咱作为一名C初学者还是要多练练的- 为了好玩,加了个密码登陆的,密码是521,还有就是不太懂时间获取... 具体闰年的判断方法: 代码如下: ...
- CSS控制图片大小
转载请注明来源:https://www.cnblogs.com/hookjc/ 1.CSS控制背景图片: 对于一个网页,我们开始设计的时候,可能没有过多的去想背景图到底是什么,因为大多都是设计背 ...
- Java泛型T与?
感谢大佬:http://m.mamicode.com/info-detail-2657551.html 一.区别 单独的T 代表一个类型 ,而 Class<T>代表这个类型所对应的类, C ...
- Mac搭建Git服务器—开启SSH
SSH开启 在osx中开启ssh访问非常简单,只需要打开"系统偏好设置"并且点击"共享"图标即可. 选中下图中的check box即允许远程登陆.server处 ...
- webhook触发jenkins进行sonar检测
目的 jenkins仅需创建一个job,git推送后自动进行sonar代码检测并上传到sonarqube jenkins插件 已按社区推荐安装基本插件 Generic Webhook Trigger ...
- JTAG 标准IEEE STD 1149.1-2013学习笔记(一·)Test logic architecture、Instruction register以及Test data registers
我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索和SOC设计. 关注公众号[集成电路设计教程],拉你进"IC设计交流群". 注:转载请注明出处 一.Test logic ...
- Solution Set -「LOCAL」冲刺省选 Round XXIII
\(\mathscr{Summary}\) 有一说一,虽然我炸了,但这场锻炼心态的效果真的好.部分分聊胜于无,区分度一题制胜,可谓针对性强的好题. A 题,相对性签到题.这个建图确实巧妙,多见 ...
- MySQL基本数据类型与约束条件
昨日内容回顾 数据存储的演变 # 方向: 朝着更加统一和方便管理 数据库的发展史 # 由本地保存逐步演变为线上保存 数据库的本质 # 本质上就是一款CS架构的软件 """ ...
- .Net Core Aop之IActionFilter
一.简介 在.net core 中Filter分为以下六大类: 1.AuthorizeAttribute(权限验证) 2.IResourceFilter(资源缓存) 3.IActionFilter(执 ...
- ELK(Elasticsearch 、 Logstash以及Kibana)
配置日志收集系统 ELK需求背景:业务发展越来越庞大,服务器越来越多各种访问日志.应用日志.错误日志量越来越多,导致运维人员无法很好的去管理日志开发人员排查问题,需要到服务器上查日志,不方便运营人员需 ...