- java接口,内部类
java接口是一种规范
1—interface关键字修饰,可以多继承,默认public(方法),final(成员变量),static 进行修饰。
2—有成员变量。有方法体。
(接口需要注意的地方,接口嵌套接口(下面代码),不知道在学校老师有没有讲,反正我没印象)
public interface interfaceExtends {
interface InterfaceA{
int property_A=3;
void testA();
}
interface InterfaceB{
int property_B=6;
void testB();
}
interface InterfaceC extends InterfaceA,InterfaceB{
int property_C=9;
void testC();
}
public static void main(String[] args) {
System.out.println(InterfaceC.property_A);
System.out.println(InterfaceC.property_B);
System.out.println(InterfaceC.property_C);
}
}
内部类
1 —匿名内部类
2 —没有名字,只能使用一次,它通常用来简化代码编写
3—必须继承一个父类或实现一个接口
- 枚举(平时只用那么一次两次,当时还真不知是干什么用的)
1 —使用enum关键字,默认继承long.Enum,不是继承Object,有成员变量,方法体
2—vlaues()获取所以对象,valueOf()获取对象
3—在第一行定义所有对象
public enum SeasonEnum {
CLIENT,PM,STYLIST,PROGRAMMER
int value
SeasonEnum(int value){
this.value = value;
}
public int getValue(){
return value;
}
}
- 对象与垃圾回收(重点)
1—对象为null时,程序结束,jvm自动回收
2 —垃圾回收,只会回收堆中内存的对象,不会回收物理资源
3 —程序无法控制垃圾回收什么时候回收,回收对象前,会调用finzlize()
3 —强制垃圾回收(两种方法,下面代码方便理解)
—system.gc()
—Runtiem.getRuntime().gc();
——-小知识点
对象在jvm堆的状态
—可达状态(对象实例化时)
—可恢复状态()
—不可达状态(执行finzlize()后,重新引用对象可恢复)
public class test2 {
private static test2 t = null;
public void sayHello(){
System.out.println("sayHello");
}
/**
* @param args
*/
public static void main(String[] args) {
/*for(int i = 0;i<5;i++){
new test2();
Runtime.getRuntime().gc();
System.gc();
}*/
new test2();
Runtime.getRuntime().gc();
t.sayHello();
}
@Override
protected void finalize(){
System.out.println("清理test2");
t = this;
System.out.println("恢复");
}
}
总结
在实际开发中接口是很常用的,特别是在java web Dao层中。这次也了解留枚举用途,以前是照抄代码,根本就不了解枚举干嘛用的,但做任何事情不能得过且过吧,了解更多总是对自己有好处的。重点jvm内存管理:
要了解android的内存管理就必须得了解java的内存分配和垃圾回收机制,
这次也大概知道留jvm的垃圾回收机制,还是要更深入的了解更多。