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.递归体:什么时候调用自己

原创粉丝点击