Java 和 C++ 都是高级程序语言, C++ 直接编译成机器码 运行,而Java 编译成class字节码后 读入到JVM中 通过JVM 这中间托管在转成机器码运行。 为什么Java需要这样做,这是基于什么考虑?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Java 和 C++ 都是高级程序语言, C++ 直接编译成机器码 运行,而Java 编译成class字节码后 读入到JVM中 通过JVM 这中间托管在转成机器码运行。 为什么Java需要这样做,这是基于什么考虑?

2019-02-01 17:02:50 5451 10

Java 和 C++ 都是高级程序语言, C++ 直接编译成机器码 运行,而Java 编译成class字节码后 读入到JVM中 通过JVM 这中间托管在转成机器码运行。 为什么Java需要这样做,这是基于什么考虑?

取消 提交回答
全部回答(10)
  • 双持
    2020-03-23 17:37:13

    移植性考虑

    0 0
  • 知钵
    2019-07-17 23:27:42

    write once, run everywhere.这个是java的核心,借助于抽象的与硬件无关的JVM层来解决代码跨平台的问题,实际上,JVM也是目前来看应用最广的VM(其他类似的VM还有erlang,但目前从使用的受众群体来说,不如JVM广泛)

    0 0
  • gaoyusong
    2019-07-17 23:27:42

    主要是解决跨平台问题

    0 0
  • 0v0
    2019-07-17 23:27:42

    java这么做是为了让写代码的人不要去考虑系统的环境,更专注的解决问题

    0 0
  • peter517517
    2019-07-17 23:27:42

    JVM的设计就让java一套代码可以在不同的平台运行,同时就是因为JVM,效率上比C++低

    0 0
  • 游客rkbbihx5xrs3m
    2019-07-17 23:27:42

    Java是通过jvm,一次编译,后续其他系统都可以执行

    0 0
  • 谢杨易
    2019-07-17 23:27:41

    1 c++直接编译为机器码,使得C++需要感知平台的区别,比如arm架构,x86架构的不同
    2 Java编译为字节码,然后在虚拟机上运行。虚拟机吃掉了硬件平台的差异,故Java可以实现平台无关性。
    3 Java通过JIT优化技术,会在运行时,将部分常用字节码编译为机器码,从而提高运行速度。

    0 0
  • 辟疆
    2019-07-17 23:27:41

    这才是java的核心,在一个平台编译,其它平台就能直接拿来运行。所有的跨平台工作都由JVM自己去实现,程序员不用care平台细节,只负责自己的代码逻辑。
    你开发一个java应用,编译出来的jar包可以同时在windows、linux和mac都能运行。
    而c++,在不同的平台,都需要分别维护和编译。

    0 0
  • mqtq
    2019-07-17 23:27:41

    因为Java通过JVM完成了一次编译,然后再由JVM将执行的class字节码翻译成不同平台的不同机器语言,进而完成平台无关性

    0 0
  • 李博 bluemind
    2019-07-17 23:27:41

    因为不同系统不同cpu,c++要每个平台单独编译一个文件,适配目标硬件。Java是通过jvm,一次编译,后续其他系统都可以执行,背后是隔离了硬件系统差异

    0 0
滑动查看更多
相关问答

1

回答

JAVA和C++里纯虚函数的区别是什么呢?

2022-04-02 23:51:47 298浏览量 回答数 1

1

回答

Java对象的访问方式中,直接指针访问方式有什么优点?

2022-04-02 19:13:15 209浏览量 回答数 1

1

回答

Java类对象可以调用静态方法么?

2022-04-02 16:36:48 763浏览量 回答数 1

1

回答

java中,实例化对象是什么意思?

2022-04-02 16:38:37 545浏览量 回答数 1

0

回答

请问java对象序列化对应用程序的性能影响会有多大,该如何进行优化?

2021-11-06 23:43:02 322浏览量 回答数 0

0

回答

请问java中将对象转换为字节数组性能最快方法的是什么?

2021-11-12 17:22:35 361浏览量 回答数 0

0

回答

请问java中将对象转换为字符串性能最快方法的是什么?

2021-11-06 23:24:38 381浏览量 回答数 0

1

回答

请问java中将对象转换为数组性能最快方法的是什么?

2021-11-06 22:56:56 330浏览量 回答数 1

1

回答

为什么在Java程序代码优化中尽量避免过多过常地创建Java对象?

2021-10-29 14:01:37 416浏览量 回答数 1

1

回答

创建一个Java对象时,执行顺序是怎样的?

2020-04-07 12:54:51 649浏览量 回答数 1
+关注
李博 bluemind
云栖社区Java、Redis、MongoDB运营小编,有意合作请联系钉钉:15810436147
2107
文章
1103
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载