Java 包是用C++编写的吗?

Are java packages written in C++?

本文关键字:C++ Java      更新时间:2023-10-16

所以我和一位同事谈论了C++中指针的意义,我声称Java是高级语言,因为它自动处理内存分配。然而,她反驳说,大多数处理内存分配的java包都是用C++编写的。这是真的吗?

JVM主要是用C++编写的,所以是的,所有本机操作(如内存分配)本质上都是C++代码。然而,实现自动分配和垃圾回收仍然是Java(JVM)的责任,所以它是用C++编写的这一事实并没有多大意义。它可以用任何允许您本地访问资源的语言编写,因为 Java 本身无法做到这一点。

此外,谈论哪种语言比另一种语言"优越"是你一生中最无用的事情之一。

是的,JVM主要是用C和C++编写的。

不同的不是JVM如何处理它,而是程序员如何用C和Java编写代码。

在Java中,

编码人员不需要知道与如何处理内存操作相关的问题(例如,您现在不需要分配多少空间,而在C中您需要知道时,您不必在指针上处理aritmethic)。

垃圾回收在 Java 中为您执行的操作是由 C(和 C++)中的程序员手动完成的。

这并不意味着Java优于C++。这只意味着程序员以不同的方式处理内存。

以下是两种解决方案的优缺点列表:

  • 易于开发(Pro Java,缺点C++)
  • 决定何时释放内存(Pro C++,缺点 Java)
  • 决定如何详细释放内存(Pro C++,缺点Java)
  • 丢失释放内存的可能性(Pro java,缺点C++)
  • 处理释放过程的内存量(Pro C++,缺点 java)

正如你所看到的,这两种解决方案都有优点和缺点,只考虑垃圾收集的等效物,你可以想象考虑语言的所有方面可以说没有赢家,但Java在某些方面更好,而在其他方面C++。您可以根据自己正在开发的内容做出正确的选择。