Java JDK源码解析之:native方法

本文介绍了Java中的native关键字,它是Java与C语言交互的桥梁。通过一个简单的加减法示例,阐述了如何使用native关键字定义并实现C语言的动态链接库。详细步骤包括:编译Java类为字节码文件,使用javah生成C头文件,包含Java SDK的头文件解释器,编写C语言源码,转换为Release版本,生成.dll动态链接库,并配置Java项目的Native library location。最后,测试运行成功,展示了Java与C语言结合的可能性。
摘要由CSDN通过智能技术生成

初次看见native关键字是自己在看Scanner类源码中传递System.in参数实现打印,之后转到System观看源码时看见native关键字,关于native关键字笔者表示,是Java与C语言的通讯接口,因为Java语言没有操作底层的条件,所以Java语言只好用C语言来操作底层部件,定义了native关键字。
System出现的native方法:

public final class System {
    private static native void registerNatives();
    .......
    }

笔者观看代码时一脸懵,开始认为怎么会有这种方法,没有方法体。之后笔者也试了以下。顺便搜索一些前者资料。自己实现了一个。基于native关键字的加减法。

package com.java.jvm.demo;


public class JVMDemo {	
	

		public native int add(int i,int j);
		public native int sub(int i,int j);
		public native int mul(int i,int j);
		public native int div(int i,int j);
}

因为native关键字时要用C去实现的方法,在编译时尤其注意,需要将类编译成C语言的头文件。

1、首先将类编译为.class的字节码文件
2、第一种方法是在.class的目录下使用javah命令编译,还有一种方法是在eclipse中配置编译器。具体就不详细说明。
3、类与包名一旦定义好不能随意更改,因为编译好的头文件会附带包、类名

之后编译的头文件代码:

/* DO NOT E
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

programming_dl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值