1.编译成class和直接用java,大小问题,class文件精炼过,去掉了注释等等
2.如果在jvm运行时编译的话,编译这一步也会消耗很长时间。况且每次运行都得编译。假设你把tomcat停掉再重启,还是得额外编译一遍
3.jvm的规范。jvm规定的就是class规范。其它语言只要编译生成的class代码符合我的规范,我就能让你在jvm上运行。现在你的想法是java文件直接和jvm绑定。那么其它语言就用不了了java,kotlin,Scala,Clojure,Groovy,Jython,JRuby 这些编译成class文件后都可以在java虚拟机上运行, 虽然叫java虚拟机,但是只与符合其规范的class二进制文件所关联,虚拟机不关心class是由什么语言编译而来。有些资料也管这叫虚拟机的语言无关性。
4.把编译单独摘出来,更有利于解耦,是代码运行和代码编译之间的解耦。以后你有更好的编译工具,完全可以替代java提供的
Java文件为什么一定要先编译成class文件,JVM为什么不直接解释java文件
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 先谈谈JVM 这篇文章主要是讲class文件和类加载机制,但是整个过程都和jvm密切相关,所以先从jvm说起。 J...
- 前言 作为一个Java开发者,对技术的追求而不仅仅停留在会用API,会写基本功能上,要想在技术上有更高的造诣,就需...
- Understanding bytecode makes you a better programmer 前言 作...