前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jvm相关知识

jvm相关知识

作者头像
逍遥壮士
发布2021-02-04 11:58:29
3620
发布2021-02-04 11:58:29
举报
文章被收录于专栏:技术趋势技术趋势技术趋势

编程语言最终是如何去调用CPU的?

像java、c、c++、python等都属于高级语言,而高级语言是通过调用汇编语言,而汇编语言内部封装了很多操作指令,比如 add sub等,去操作机器指令,像cpu不同的型号或类型都有不同的指令,比如x86,x64是不一样,所以对应的机器指令也不一样,所以汇编语言所调用的指令也就不一样。

CPU只识别机器指令,所以高级语言是无法直接调用的,只能通过高级语言->汇编语言->机器指令->cpu

参考:https://baike.baidu.com/item/%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80/61826

Java如何实现跨平台?

经常有一句话这样讲,java的语言写出来的程序,一次编写到处运行,其实是因为java语言经过虚拟生成.class字节码文件,然后这个.class字节码文件是基于虚拟机运行的,所以也就是说,不管任何平台只要有装jvm(虚拟机)都可以运行java,所以就实现了“一次编写到位运行”。

参考:https://www.cnblogs.com/lujiahua/p/11404611.html

jvm所处位置与作用?

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

通过上图可知我们的程序是基于各大框架,而各大框架底层又是去调用Java最原始的API,而java api又遵循 jvm的规范,所以jvm可以说是最深层次。

参考:https://baike.baidu.com/item/JVM/2902369?fr=aladdin

jvm是如何实现跨语言?

随着java7的正式发布,jvm现在已经非常强大,不是只有java语言才能使用,只要遵循jvm的规范的字节码文件,就可以在jvm上面运行。jvm只关心"字节码"文件,不关心具体是由哪种语言实现,就类似CPU一样,不关心高级语言是什么,只在乎机器指令传过来啥。

参考:https://docs.oracle.com/javase/specs/jls/se11/html/index.html

Open jdk与Oracle Jdk的区别?

Oracle与OpenJDK之间比较

Oracle JDK

OpenJDK

执照

它是根据GPL(通用公共许可证)许可证授权的

它是根据GNU GPL(通用公共许可证)许可证授权的

发展

由Sun Microsystems Inc.开发

由Oracle,OpenJDK和Java社区开发

性能

根据Sun JDK的开发和实现提供性能

提供由Oracle JDK之上的一些供应商开发的高性能

可扩展性

根据Sun的实施

可以使用其他库或Oracle JDK进行改进

费用

Sun的官方执行许可证

开源和免费实施可供免费使用

速度

由Sun Microsystems Inc.开发

第三方供应商将通过进行一些调整来提高JVM的速度

操作系统

支持Windows,Linux,Solaris,MacOS

FreeBSD,Linux,Microsoft Windows,Mac OS X.

便于使用

可以与任何应用程序开发一起使用

可以与任何应用程序开发和其他开源工具一起使用,以提高开源实现模型的性能。

自从jdk11以后open jdk和oracle jdk基本没什么太太差别,除了两者协议不一样,其他大致相关。

参考文章:

http://openjdk.java.net/

https://adoptopenjdk.net/migration.html

jdk与jre区别

上图以jdk8为主,因为现在国内大部分都是jdk8为主,可以看到jdk8包含了jre的功能,而jre没有 Tools 和 Tool APIs 。

参考:https://docs.oracle.com/javase/8/docs/

最后

jvm是一个极其复杂的虚拟机,里面可以说集成当今世界上各大高新技术,比如:各种算法、各种优化方案、各种各样的友好兼容以及与硬件交互的底层机器指令等等。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术趋势 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档