java基础复习2(面向对象 三大特征 内存机制)
来源:互联网 发布:大数据 hadoop 编辑:程序博客网 时间:2024/06/15 17:37
面向对象基础:
1.对象的进化史
a) 基本数据类型阶段 数据少 无数据管理时代
b) 数组 数据多了,将同类型的数据放到一起 弱管理
c)结构体 数据多了复杂了,不同类型放到一起 强管理
d)对象 数据多了类型复杂了行为复杂了,将不同类型的数据放到一起 超强管理时代
对象和类:
对象是具体的,类是抽象的。类也是一个模板,通过类可以new对象
定义类:
class类名 { xxxx} public class类名和文件名相同
//属性
private数据类型 属性名 //建议增加相应的getter,setter方法
//方法
//构造方法(器)
构造方法:
1.方法名和类名一致
2.无返回类型
3.通过new来调用
4.无参构造器
a)如果没有手动定义构造器,系统会自动添加一个无参构造器
b)如果我们定义了构造器,系统不会添加构造器
5.构造方法第一句总是super,调用父类的构造方法
a)有继承关系的构造方法调用顺序
方法的重载 (overload):
两同(同一个类同一个方法名)三不同(参数列表不同:类型 个数 顺序)
返回值不同:NO
形参名称不同:NO
this:
普通方法中:调用本方法的对象
构造方法中:正在初始化的对象
可以用来调用其他构造方法
super:
构造方法中,调用父类的构造方法
static
修饰的变量和方法,就变成了静态变量和静态方法,从属于类,通过类名即可调用,实际存储于方法区中
package
必须位于非注释行第一句
取名:域名倒着写
import
引入外部类
import static 导入类的静态属性
final
修饰变量:常量(命名规则:全部大写,多个单词下划线隔开)
修饰方法:不能被重写
修饰类: 不能被继承
面向对象三大特征:
封装:
通过private default protected public关键字实现属性或方法的封装
“高内聚,低耦合”
继承:
通过extends 两个好处
1.代码重用
2.通过继承实现对现实世界更加准确的建模
3.类只有单继承
方法的重写:
=: 方法名一致
>=: 子类权限修饰符可以大于等于父类的
<=: 子类的返回值类型小于等于父类的类型,子类的声明异常类型不能超过父类类型
Object类:
1.是我们所有类的根基类
2.toString
3.equals hashcode
4.wait notify botifyAll
多态(polymorphism):
三个必要条件:继承,方法的重写,父类引用指向子类对象
动态绑定,静态绑定
抽象类:
1.包含抽象方法的类,一定是抽象类(必须被子类重写)
2.抽象类不能被new
3.抽象类可以包含:普通方法,成员变量,构造方法
接口:
1.interface
2.类实现接口:implements 可以实现多个接口
3.接口可以多继承
4.接口定义的一组规范 实现现实世界中这样的逻辑:如果你是…则必须能…
内存机制:
栈
1.存放局部变量
2.不可以被多个线程共享
3.空间连续速度快
堆
1.存放对象
2.可以被多个线程共享
3.空间不连续,速度慢,但是灵活
方法区
1.存放类的信息:代码 静态变量 字符串常量等
2.可以被多个线程共享
垃圾回收器(GC GarbageCollection)
1.程序员不能调用垃圾回收器,但是可以通过System.gc()建议回收
2.finalize:释放资源,一般也不调用
递归算法:
1.递归头:什么时候不调用自己
2.递归体:什么时候调用自己
- java基础复习2(面向对象 三大特征 内存机制)
- Java基础:面向对象三大特征、五大原则
- Java基础:面向对象三大特征、五大原则
- JAVA基础_Java面向对象三大特征
- Java基础之四:面向对象三大特征
- Java基础1:面向对象的三大特征
- java基础-面向对象三大特征(初学者)
- java面向对象的三大特征
- Java面向对象的三大特征
- java面向对象的三大特征
- java面向对象的三大特征
- Java面向对象三大特征
- java面向对象的三大特征
- java面向对象的三大特征
- java---面向对象的三大特征
- Java面向对象的三大特征
- java面向对象的三大特征
- Java面向对象的三大特征
- Hibernate和Spring整合的时候出现问题,注入Action出错
- 手写体数字识别(三) 制作训练集
- ELK-003-Beats-Filebeat的工作原理
- oneNote2016代码高亮
- Git fetch和git pull的区别
- java基础复习2(面向对象 三大特征 内存机制)
- PyCharm创建新的Python文件时设置默认信息
- a,b,c,d,e,f六个字母可以构成多少没有重复的字符串。
- POJ 3261 二分+后缀数组
- 为了能够快速部署LEMP/ LAMP/ LNMP/ LNMPA/ LTMP(Linux的,Nginx的/ Tengine / OpenResty,MySQL的生产环境/ MariaDB的/ Perco
- javascript 月份日期 取两位保留
- 欢迎使用CSDN-markdown编辑器
- 基于nodejs的开源博客0.1发布了!!!!
- sql server2014分页存储过程(offset fetch next)