什么是JVM和字节码。class文件?它们的关联又是什么?
什么是JVM和字节码.class文件?它们的关联又是什么?
1. 什么是JVM
JVM(Java Virtual Machine)即是Java虚拟机的缩写,所以不要再画蛇添足的叫JVM虚拟机了。
它是运行Java字节码(即.class文件)的虚拟机,由于java是跨平台的,所以jvm虚拟机针对不同系统(windows,linux,macOS)也有不同的实现。
个人理解:
jvm相当于代码的一个翻译,到windows里就翻译成window能听懂的语言,到linux里就翻译成linux能听懂的语言。因此同样的代码在不同的平台,结果的执行操作也几乎是相同的,只是中间翻译的这一步不同。
这应该就是java跨平台性的原理,它不需要开发者会"多国语言",只要会java语言就够了。它也不需要每个国家(系统)都支持它的语言,只需要为每个国家搭配一名专业的翻译(JVM),将java语言翻译成这个国家能听懂的语言就够了。 2.什么是字节码(.class)
在java中,JVM可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向Java虚拟机(JVM)。Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序的运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java程序无需重新编译便可在多种不同操作系统的计算机上运行。
个人理解:
字节码文件(.class)是通过Java文件(.java)编译后得到的,它只会被Jvm处理,也是JVM唯一能理解的语言。并且这个编译过程是无视平台的,也就是不管你在什么环境下进行编译,由java文件生成的.class文件都是一样的。和平台有关的步骤是Jvm解析字节码文件的时候,它需要将字节码文件解析成操作系统能执行的机器语言指令,然后执行指令。这一步由于不同的操作系统有不同的命令,所以会产生差异。
整体流程:
.java文件(源代码)=== 编译 ===》.class文件(字节码文件)=== JVM解析 ===》二进制机器码
3.为什么需要字节码(.class)
通过前面我们都明白了JVM才是跨平台的核心,那为什么在此之前还要再加工一次,让.java类加工成.class呢?为啥不直接让jvm理解.java文件,直接进行翻译运行呢?这样我们就无需多关心一层.class文件了,直接将.java交给JVM,它内部该编译就编译,该执行就执行,对我们来说也不用关心那么多了。
首先我必须说明,在我看来**.class 文件和 java跨平台性 并 没有多少直接联系**,跨平台性核心是靠JVM去实现的,不同平台编译出的字节码文件是完全一样的。 说个题外话:
网上很多人看到这种问题一股脑就把跨平台性掏出来说,显得很"理所当然",这是在我看来这多少显得有点不懂装懂。百度出来的大部分回答就是这样,但是至少也比那些看起来很牛掰却只会让你去百度,其实自己屁都答不出来的fw强多了。
当然,现在我也只能以猜测性质简单的回答一下,因为我对这块内容的学习也不够深入,所以以后有机会更深入时再回来补充。
字节码文件(.class)带来的好处 ①提高效率
对java文件进行语法检查、语义分析这一步会 消耗大量的时间资源 ,编译成字节码文件相当于提前处理了源文件,提前做好了大量的工作。这样将字节码文件交给JVM运行的时候,就可以为JVM节省很多负担了。这样就可以做到让java程序能够 运行高效 ,如果这些操作都直接不经处理的交给jvm去做,肯定就无法满足 高效 这一词,有些大项目光编译就要好几分钟。如果去掉提前编译,直接让JVM解析java文件,那么当你启动这个项目的时候一定会觉得慢的离谱。 ②资源节约
字节码文件可以看做是对源文件的提炼压缩封装,它占用 更少的空间 和 更快的传输速度。 ③提升兼容性
只要满足jvm的规范,即便你是其他语言的代码,只要能编译成class文件,同样可以运行在jvm中。(理论上如此,虽然现在还没有什么实现方式)
广州幸福里开街活力绽放,烟火回归一大批古建筑经历保护开发后,诞生出旧与新传统与潮流的碰撞之美,吸引人们驻足游玩。1月7日上午,广州文冲历史文化街区幸福里正式开街,集文化体验美食休闲教育培训艺术展览于一体,活力绽放
酒泉文旅集团鱼儿红景区万亩燕麦宿营地建成投运2022年7月19日酒泉文旅集团与甘肃农垦鱼儿红牧场有限责任公司签订了鱼儿红牧场文旅项目战略合作协议。酒泉文旅集团结合牧场现有自然资源优势,借鉴吸收国内知名户外露营地项目成功经验,
中国游客的回归对全球经济意味着什么在新冠大流行之前,中国是世界上最重要的国际游客来源国。2019年,中国1。55亿游客在境外消费了超过2。5万亿美元。由于新冠流行,这种慷慨在过去三年里急剧下降。但是,随着重新开放,
新疆游记(16)Day16昨晚睡的晚,早上也醒的晚,舒舒服服睡了个懒觉。自驾游这些天,基本上都是起早贪黑,难得能放松下来好好补觉。窗外下着淅淅沥沥的秋雨,这也是来到新疆后遇到的第一个下雨天。出游这
租个小院过大年!晋源区赤桥村民宿受欢迎民宿小院的夜景。赵翠红正在收拾民宿的房间。不好意思,我们的民宿已经预约到正月初五了,您愿意选择后面的时间吗?1月7日上午,在晋源区赤桥村情槐雅舍的民宿内,赵翠红满含歉意地挂断了一位
中国有序恢复出境游,亚太国家翘首以待老朋友回归近期,中国不断优化调整防疫政策有序恢复公民出境旅游。新年伊始,中国游客将逐渐回归的消息,为亚太地区特别是以旅游业为支柱的东南亚国家经济复苏再添信心。多国政府和旅游业界表示,热切欢迎
上线即秒空!5300万元旅游消费券发放活动引燃海南冬季游秒空秒空又秒空!这是海南自2022年10月27日面向全国发放5300万旅游消费券活动以来,游客每日上午9时整准时蹲点云闪付平台抢券常会出现的火热情况。数据显示,截至2022年12月
明日首阶段通关!香港一日这是香港一日的第1242期通关在即陈国基称跨境学童将来或可凭快测过关香港与内地即将于明日(8日)正式实施首阶段通关,除部分人群外,香港市民过关前往内地时要携带预约通关证明48小时内
秋天的怀念之篁岭印象我的生活也是头条篁岭晒秋,篁岭人家翻晒的是收获和喜悦,而我翻晒的是文字,翻出一些照片,留驻一段秋的时光。翻晒丰收的喜悦辣椒的红最是秋的颜色。红旗的红最是中国红。中国元素是篁岭的魂。
云南大理风景购物推荐景区简介大理风景名胜区位于云南省大理白族自治州境内,曾是古代南诏国和大理国的都城,总面积1016平方公里,集秀丽的自然风光悠久的历史文化浓郁的民族风情宜人的气候为一体,是进行民俗考
纽约时报针对中国的旅行限制是一场闹剧今天1月8日是中国放宽防疫措施,打开国门的第一天,海内外多少华人以及外国人翘首以待多年了。大家都盼望着能自由进出国门。然后此时,以美国为首的一些西方国家却突然变脸了,无端对中国旅客