java本地方法:native方法

在java中,native方法是指本地方法,当在方法中调用一些不是由java语言写的代码或者在方法中用java语言直接操纵计算机硬件时要声明为native方法。
native方法的执行依赖于JVM的设计者,比如在sun HotSpot(JVM)中,通过JNI(Java Native Interface)的API接口来实现本地化。
Native方法常用于两种情况:
   1)在方法中调用一些不是由java语言写的代码。
   2)在方法中用java语言直接操纵计算机硬件。

在定义一个native方法时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的,下面给了一个示例:    
?
1
2
3
4
5
public  class  INativeDemo{
     native  public  void  Native1( int  x);
     native  static  public  long  Native2();
     native  synchronized  private  float  Native3(Object o);
}

native标识符可以与所有其它的java标识符连用,但是abstract除外。因为native标识符暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体。native与其它java标识符连用时,与同java普通方法并无差别,比如native static表明这个方法可以在不产生类的实例时直接调用。上面的第三个方法用到了native synchronized,JVM在进入这个方法的实现体之前会执行同步锁机制。

native方法的存在并不会对其他类调用这些本地方法产生任何影响,实际上调用这些方法的其他类甚至不知道它所调用的是一个本地方法。如果一个含有本地方法的类被继承,子类会继承这个本地方法并且可以用java语言重写这个方法,同样的如果一个本地方法被fianl标识,它被继承后不能被重写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值