- 看到一个知乎的回答讲jvm、jre、jdk,讲的很好,将其主要观点记录下来,来自知乎用户
圆胖肿
:- 现在java现在已经不再强调jvm概念了
- 以前,jvm是跨平台所需要部分的最小子集,也就是主要用来封装OS差异用的,每一种操作系统,都弄一个jvm,这样提供给上层的接口就统一了。
- 在jvm的基础上,再加上一些常见的类库,工具,就做成了jre,也就是java的运行时runtime
- 然后再在jre的基础之上,添加一些编译器等工具,这就是java的sdk(软件开发工具包)了,简称jdk。因此jdk是jre的超集,jre是jvm的超集,反过来,jvm是jre的子集,jre是jdk的子集。
- 以前java提供jre和jdk两个下载,如果只是运行java的字节码,jar那些的话,只下载安装jre就行,无需安装jdk,只有开发者才需要jdk。
- java在9的jsgsaw之后,就不再使用jvm的概念,因为jre可以被定制了,jvm和jre被拆成了一个又一个模块,可以根据需要,删减或者加入自己编写的模块。
Java学习与思考
最新推荐文章于 2024-08-16 23:08:28 发布