Java面向对象总结(16.7.10)

来源:互联网 发布:新郎接亲游戏知乎 编辑:程序博客网 时间:2024/06/04 19:53

今天学习Java的知识点有四大点,接口、内部类、枚举类和对象回收机制

一、接口(Interface)

接口是特殊的抽象类,只提供一种形式,并不提供任何实施的细节,只提供一种只能定义常量的成员和方法。

接口的特点:

1、接口是多继承的

2、所有的方法都是抽象方法并只能用public修饰的

3、接口里的成员变量默认使用public static final修饰,而且必须赋初值,也不能改变其值


二、内部类

内部类可以是嵌套类,即一个类的内部定义另一个类。

内部类可以直接访问外部类的成员变量

调用方式OutCalss.InClass ic=new OutClass().new InClass();

方法内部类,就是把类放在方法内

方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。

匿名内部类:

没有名字的类
多线程里面使用匿名内部类必须用Runable();
静态内部类
访问外部类成员变量必须是静态成员变量

三、枚举类

Java5+新增了enum关键字,用于定义枚举类
使用enum定义的枚举类默认继承java.lang.Enum,非Object
使用enum定义的枚举类实现了Serializable和Comparable接口

枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值

枚举类没有new的过程,已在底层实现


四、对象垃圾回收机制(GC)

不停的分配内存,程序迟早出现内存不足的现象
无法控制GC的回收

Java的垃圾回收机制
只负责回收堆内存中的对象,不会回收任何物理资源
程序无法精确控制垃圾回收的运行、垃圾回收会在合适的时候进行回收
回收任何对象之前,都会先调用finalize()

对象在JVM堆区的状态
可达状态:存在引用变量引用这个对象
可恢复状态:不存在引用变量引用这个变量,此时处于可恢复状态,系统正准备回收它,先调用finalize()方法,判断是否有“重生”机会,如果没有则被回收。
不可达状态:对象与所有引用变量的关联被切断,永久失去了引用,系统才会回收该对象所占用的资源。

强制垃圾回收
调用system类的gc()静态方法:System.gc();
调用Runtime对象的gc()实例方法:Runtiem.getRuntime().gc();








0 0
原创粉丝点击