当前位置: 首页 > 面试题库 >

什么是Java的本机实现?

漆雕和昶
2023-03-14
问题内容

如果我们看一下Java Object类,那么我们可以找到一些方法,例如:

public native int hashCode()
protected native Object clone()

这些本机是什么,这些方法如何工作?


问题答案:

这些方法是 机的,也可能是在Java外部用“本机”代码编写的,也就是说,特定于给定的计算机

您提到的是 _内部的,_并且是JDK的一部分,但是您也可以自己使用Java本机接口(JNI)编写本机方法。通常,这将使用C来编写方法,但是许多其他语言(例如python)使您可以相当轻松地以这种方式编写方法。这种代码是出于提高性能的目的而编写的,或者因为它需要访问特定于平台的基础架构而无法用纯Java完成。

在的情况下hashcode(),这是由JVM实现的。这是因为哈希码通常与JVM知道的东西相关。在早期的JVM上,这与对象在内存中的位置有关-
在其他JVM上,对象可能在内存中移动,因此可以使用更复杂(但仍然非常快)的方案。



 类似资料:
  • 本文向大家介绍Java中实现多态的机制是什么?相关面试题,主要包含被问及Java中实现多态的机制是什么?时的应答技巧和注意事项,需要的朋友参考一下 Java中的多态靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。

  • 问题内容: 我希望这不会成为一个愚蠢的问题,但这始终是我一直想知道的事情。Windows(Win32 API)和OS X(Cocoa)都有自己的API,可以处理窗口,事件和其他OS内容。对于Linux的等效功能,我从未真正有明确的答案。 我听说有人说GTK +,但是GTK +是跨平台的,怎么会是本地的呢? 问题答案: 在Linux中,图形用户界面不是操作系统的一部分。大多数Linux桌面上的图形用

  • 我理解JVM如何从OS提供的可用本机堆中创建java堆。

  • 我一直在谷歌搜索它,但谷歌搜索关键字“?”也没那么好。我很想知道它是做什么的,什么时候用。 谢了! 我已经看过几次了,但这里有一个我刚刚看到的例子

  • 我是Gradle的新手,现在正在学习配置。许多开发人员在他们的中使用配置,但我不明白这是干什么用的。 我正在阅读gradle文档,发现配置是由java插件提供的。但对我来说,这个描述还不容易。 实现仅扩展编译 实现依赖项。 这个术语中的“只执行”是什么意思?

  • 让这种方法本土化背后的逻辑是什么? 与仅使用哈希图制作内嵌字符串池相比,有什么优势? 它看起来有点奇怪,但在非本机代码中似乎很容易做到: 那么为什么是本机代码呢?