在看jdk源码的时候看到了对象的hashcode()方法之前添加了native关键字,而且方法没有实现,具体如下:
/** *(This is typically implemented by converting the internal
* address of the object into an integer, but this implementation
* technique is not required by the
* JavaTM programming language.)
*/
public native int hashCode();
根据注释我们可以看到,对象的hashcode的生成是通过将对象的内部地址转换为整形数值实现的,但是方法不通过java语言实现。
JNI是Java Native Interface的缩写,它允许java和其他语言写的代码进行交互。
JNI的书写步骤:
1.编写带有native关键字的java类方法
2.使用javac编译java类
3.使用javah ?jni 类名 生成扩展名为.h的头文件
4.使用C或者C++或者其他语言实现本地方法
5.将C或者C++实现的文件生成动态链接库
具体的书写例子可以参照: http://www.blogjava.net/shiliqiang/articles/287920.html
分享到:
相关推荐
Java的`native`关键字在Java编程中扮演着特殊的角色,它是Java语言与底层操作系统交互的重要桥梁。本资源包是针对Java中的`native`关键字的学习资料,对于想要深入了解Java本地接口(JNI,Java Native Interface)的...
Java中的`native`关键字是用来声明一个方法为原生方法,这意味着该方法的实现不在Java代码中,而是由非Java语言(如C或C++)在本地代码中提供。原生方法是Java与操作系统或其他底层系统资源进行直接交互的重要手段,...
初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法: public native int hashCode(); 为什么有个native呢?这是我所要学习的地方。所以下面想要总结下native。 一、认识 native 即 JNI,Java...
29. **native**:用于声明本地方法,即在Java外部实现的方法。 30. **new**:用于创建新对象的运算符。 31. **package**:用于组织类和接口,形成命名空间。 32. **private**:访问修饰符,表示只有在同一类中才能...
在编程语言的学习中,了解和掌握关键字是至关重要的一步,特别是在Java这种强类型的语言中。本文将深入探讨Java中的关键字,这些关键字是Java语法结构的基础,它们被Java编译器特殊处理,有着特定的含义和功能。 ...
Java中的`native`关键字用于标记一个方法,表明该方法的实现并不在Java代码中,而是由其他语言(通常是C或C++)在本地代码(Native Code)中实现。这种特性使得Java能够与操作系统底层或者其他非Java语言编写的库...
这个关键字表明方法的实现是用非 Java 语言(通常是 C/C++)编写的,通常与Java Native Interface (JNI)一起使用。 8. **new**:创建。new 关键字用于动态分配内存并创建类的实例,也就是对象。 以上就是 Java ...
### Java关键字分类解释 #### 一、类与接口定义关键字 - **class**: 在Java中,`class`关键字用于声明一个类。类是面向对象编程的基本单元,它定义了一组属性(成员变量)和方法(成员函数),这些共同构成了一个...
`native`表示方法的实现是在其他地方(如C/C++)完成的,通常与Java的JNI(Java Native Interface)一起使用。 最后,`package`关键字用于组织类和接口,提供命名空间,防止命名冲突。`import`则用于引入其他包中的...
### Java关键字详解 #### 前言 Java作为一种广泛使用的编程语言,在软件开发领域占据了重要的地位。Java的关键字,即保留字,是Java语言中具有特殊意义的标识符,它们预定义并保留用于语言本身的语法结构。理解这些...
以上只是 Java 关键字中的一部分,还有许多其他关键字,如 `do`, `else`, `extends`, `final`, `finally`, `float`, `for`, `if`, `implements`, `import`, `instanceof`, `int`, `interface`, `long`, `native`, `...
- `native` 关键字用于声明方法是用C/C++实现的,Java本身不提供实现。 28. `new`: - `new` 用于创建对象,分配内存并调用构造方法初始化。 29. `null`: - `null` 是一个特殊的值,表示对象引用没有指向任何...
Java语言关键字分类详解 Java语言关键字是Java编程语言的基本组成部分,它们是Java语言的核心结构单元。本文将对Java语言关键字进行分类详解,帮助读者深入理解Java语言的基础知识。 访问控制关键字 * private:...
`native`关键字用于声明本地方法,即由非Java语言实现的方法。 ```java public native void nativeMethod(); ``` ##### super `super`关键字用于引用父类的对象。 ```java class Parent { public void sayHello...
Java 共有 50 多个关键字,它们包括但不限于 `abstract`、`assert`、`boolean`、`break`、`byte`、`case`、`catch`、`char`、`class`、`const`(虽然未使用)、`continue`、`default`、`do`、`double`、`else`、`...
### Java关键字详解 #### 概述 Java是一种广泛使用的面向对象编程语言,它拥有丰富的关键字集,用于控制程序的行为和结构。Java关键字是由Java语言预定义的标识符,具有特殊的含义,不能用作变量名、方法名或类名等...
30. **native** - 标记方法由非Java代码实现,如C/C++。 31. **new** - 创建新对象。 32. **null** - 代表无值,表示对象引用为空。 33. **package** - 定义包,组织类和接口。 34. **private** - 访问修饰符,...
以上仅是Java关键字的一部分,还有许多其他关键字,如`synchronized`, `volatile`, `transient`, `native`, `strictfp`等,它们各自承担着特定的功能。理解和熟练使用这些关键字是成为一名合格的Java程序员的基础。...
对于新手来说,理解Java的关键字是非常重要的一步,因为它们构成了语言的基础并指导了代码的结构和行为。 Java的关键字是被语言本身保留的词汇,它们有特定的含义和功能。例如,`byte`, `short`, `int`, `long`, `...
29. `native`:原生方法,用C/C++实现的Java方法。 30. `new`:创建新对象的实例。 31. `package`:打包,将相关的类组织在一起形成命名空间。 32. `private`:私有的,限制访问权限,只能在定义它的类内部访问。 33...