java基础(一)
2016-07-24 15:40
447 查看
java接口,内部类
java接口是一种规范
1—interface关键字修饰,可以多继承,默认public(方法),final(成员变量),static 进行修饰。
2—有成员变量。有方法体。
(接口需要注意的地方,接口嵌套接口(下面代码),不知道在学校老师有没有讲,反正我没印象)
内部类
1 —匿名内部类
2 —没有名字,只能使用一次,它通常用来简化代码编写
3—必须继承一个父类或实现一个接口
枚举(平时只用那么一次两次,当时还真不知是干什么用的)
1 —使用enum关键字,默认继承long.Enum,不是继承Object,有成员变量,方法体
2—vlaues()获取所以对象,valueOf()获取对象
3—在第一行定义所有对象
对象与垃圾回收(重点)
1—对象为null时,程序结束,jvm自动回收
2 —垃圾回收,只会回收堆中内存的对象,不会回收物理资源
3 —程序无法控制垃圾回收什么时候回收,回收对象前,会调用finzlize()
3 —强制垃圾回收(两种方法,下面代码方便理解)
—system.gc()
—Runtiem.getRuntime().gc();
——-小知识点
对象在jvm堆的状态
—可达状态(对象实例化时)
—可恢复状态()
—不可达状态(执行finzlize()后,重新引用对象可恢复)
要了解android的内存管理就必须得了解java的内存分配和垃圾回收机制,
这次也大概知道留jvm的垃圾回收机制,还是要更深入的了解更多。
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的垃圾回收机制,还是要更深入的了解更多。
相关文章推荐
- Java连接池详解
- 二进制、八进制、十进制、十六进制之间的转换
- [Java 安全]消息摘要与数字签名
- Java解决No enclosing instance of type PrintListFromTailToHead is accessible问题的两种方案
- eclipse4.2(juno)各种插件安装(j2ee,m2e,maven-svn,svn,hibe
- Java开源Saas开发框架+Activiti流程管理=JSAAS
- Java运行时数据区域学习
- JAVASE总结--01(java 历史历程简述、JDK的安装、用CMD编译运行程序)
- java基础语法笔记
- Java四舍五入取巧方式
- Java中Synchronized的用法
- JAVA面向对象-----成员内部类访问细节
- JAVA面向对象-----成员内部类访问细节
- Spring MVC 关键点 理解
- Java之详解坦克大战游戏(五)
- javaweb学习总结一(eclipse常用快捷键、debug调试以及junit测试框架)
- Java中Calendar工具类的一些常用方法
- java多线程
- java四大引用
- java.lang.StackOverflowError: stack size 8MB