Java——native关键字
说明:在使用HashSet的过程中,查看Object.java过程中发现hashCode()方法是以native关键字修饰,没看到过该关键字,这里记录下来。
native关键字用来修饰方法,是使用一些具有平台依赖的代码(比如C或者C++)实现的,而不是使用Java。当一个方法使用native修饰的时候,必须以“;”结束语句,而不能包含body部分。
下面的例子展示了带有native修饰的方法的类:
public class NativeExample
{
public native void fastCopyFile(String sourceFile, String destFile);
}
JNI说明为实现native method提供使用的规则,比如Java和本机应用之间的数据类型转换。
现在使用native method情况:
1)需要在Java中调用使用其他语言写的库
2)Java语言本身不能对操作系统底层进行访问和操作,这时就需要通过电泳其他语言(尤其是C)来访问系统或者硬件资源。这时就需要native method。
JNI(Java Native Interface),即Java本地接口,是一种编程框架,使得Java虚拟机中的Java程序可以调用本地应用/或库,也可以被其他程序调用。本地程序一般是使用其他语言(C、C++、汇编语言等)编写的,并且被编译为基于本机硬件和操作系统的程序。
JNI允许程序员用其他编程语言来解决用纯粹的Java代码不好处理的情况,例如,Java标准库不支持的平台相关功能或者程序库。也用于改造已存在的用其他语言写的程序,供Java程序调用。
JNI框架允许Native方法调用Java对象,就像Java程序访问native对象一样方便。Native方法可以创建Java对象,读取这些对象,并调用Java对象执行某些方法。Native方法也可以读取由Java程序自身串讲的对象,并调用这些对象的方法。
参考:stacoverflow.com/questions/6101311/what-is-the-native-keyword-in-java-for
https://zh.wikipedia.org/wiki/Java本地接口
Java——native关键字的更多相关文章
- Java native关键字
在String类中 public native String intern(); native关键字是干嘛的? Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Jav ...
- Java语言与C语言混合编程(1)--Java native 关键字
一. 什么是 native Method 简单地讲,一个 native Method 就是一个java调用非java代码的接口.一个 native Method 是这样一个java的方法:该方法的实现 ...
- Java的native关键字---JAVA下调用其他语言的关键词
今天研究Java基础类库,Object类的时候,发现了一个关键字:native 咦?这是个什么东东?它认识我,我可不认识它! 嘿嘿,没关系,baidu一下. java native关键字 一. 什么是 ...
- native关键字(本地方法)、 java调用so动态链接库
Java native关键字 一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个ja ...
- Java中native关键字
Java中native关键字 标签: Java 2016-08-17 11:44 54551人阅读 评论(0) 顶(23453) 收藏(33546) 今日在hibernate源代码中遇到了nati ...
- Java中Native关键字的作用
初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法: 1 public native int hashCode(); 为什么有个native呢?这是我所要学 ...
- java基础-关键字-native
一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由 ...
- Java中的native关键字与JNI
一.先说一下大致的意思: jdk提供的类库源代码中有一些方法没有实现,这些方法前有native关键字,如object类中的 : native Object clone() throws CloneNo ...
- Java中native关键字[转]
原文链接:http://blog.163.com/yueyemaitian@126/blog/static/21475796200701491621267/ 今日在hibernate源代码中遇到了na ...
随机推荐
- Centos7网络配置( 网关、dns、ip地址配置)
0.前提:设置VMware的虚拟网络编辑器 子网和网关设置 虚拟网络编辑器 1.配置DNS(可忽略) $vim /etc/resolv.conf nameserver 192.168.0.1 2. ...
- Keepalived搭建LVS高可用性集群系统
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover ...
- 配置Ansible加速
下载安装包 wget https://files.pythonhosted.org/packages/source/m/mitogen/mitogen-0.2.7.tar.gz tar axf mit ...
- 使用Redis构建电商网站
涉及到的key: 1. login,hash结构,存储用户token与用户ID之间的映射. 2. recent_tokens,存储最近登陆用户token,zset结构 member: token,sc ...
- Northwestern European Regional Contest 2014 Gym - 101482
Gym 101482C Cent Savings 简单的dp #include<bits/stdc++.h> #define inf 0x3f3f3f3f #define inf64 0x ...
- python执行脚本报错: Non-ASCII character '\xe4' in file yang.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
这是因为我们在写python程序的时候,无论在注释里面出现中文,还是在代码里面出现中文,也就是说只要这个python程序里面有中文,我们就不能直接用python2来进行执行,如果安装是python3可 ...
- 使用elasticsearch搭建自己的搜索系统
什么是elasticsearch Elasticsearch 是一个开源的高度可扩展的全文搜索和分析引擎,拥有查询近实时的超强性能. 大名鼎鼎的Lucene 搜索引擎被广泛用于搜索领域,但是操作复杂繁 ...
- 【Spark】SparkStreaming的容错机制
文章目录 检查点机制 驱动器程序容错 工作节点容错 接收器容错 处理保证 检查点机制 Metadata checkpointing -- 将定义流计算的信息存入容错的系统如HDFS. Data che ...
- Ubuntu 配置/etc/fstab参数实现开机自动挂载硬盘
文章目录 前言 fstab 参数含义 实现步骤 1 查看硬盘信息,并找到需要进行挂载的硬盘 2 sudo mkfs.ext4 /dev/sdc 3 sudo mkdir /home/diska 4 查 ...
- 网络编程采用HttpClient类更好
一般人网络编程普遍用HttpWebRequest,类似下面的实现.我也一般都这样实现 string result = string.Empty; HttpWebRequest request = (H ...