JNI,接口和内部类

许久没有更新,今天写一点,加深自己的印象,如果有人在baidu上搜到,也希望对你有帮助。

JNI是java native interface的简称,是JAVA和其他程序之间的中介,相当的复杂,我自己的搞不清楚,就不多讲了。

java.lang是JAVA中很重要的一个包,有一个叫做Object的类十分特殊,它可以说是JAVA中所有类的祖先类,如果没有特别的说明,那么所有的类都是从它派生而来。这个类中有一个finalize()的函数,这是JAVA中的垃圾回收机制。试验表明,如果还有空闲的内存,JAVA不会主动调用这个函数,应该是这个函数的调用会占用较大的开销,只有当无内存可用是,才调用这个函数。当然,可以通过system.gc()这个函数来主动调用finalize()来清理垃圾内存。

interface是接口关键字,它可以理解为一个标准,确立很多函数的原型,然后类可以按照统一的标准来实现它。可以这么理解,主板厂商只要确立一个显卡的标准,由厂商来按照这个标准制造自己的显卡,但是结果是无论什么牌子的显卡,插在这个主板上,主板都可以识别它。定义在接口中的成员默认是public abstract格式也可声明为public,那么在实现类中的成员就必须声明为public以比它有相等或者更高的优先级。实现的关键字是implements。若接口中有数据成员,则统一为public static final格式。

interface还常用于类之间的通信,比如在某一个类中,定义的函数中参数可以为接口,那么可以实现了接口的类的对象可以作为形参来传递给它。JAVA不允许类的多继承,但是它是允许一个类实现多个接口的。

内部类应该是作为外部类的一个成员来理解的,可以声明为public,protected,private,final,abstract,static;如果声明为static,那么在类的外部它可以不通过外部类而直接建立自己的对象,但是只能访问外部类中静态的成员和函数,但是可以有静态成员。但是若不声明为static,那么它不能访问外部类中的静态成员,而且它也不能拥有自己的静态成员,更加悲惨的是,它必须因为外部类的一个对象而建立自己的对象,否则它不能建立对象。内部类真的是十分复杂,还要用奇怪的方法使用 this指针来访问它,这个东西我还有待研究啊。

先写这么多了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值