java平台无关性_什么是Java的平台无关性

Hello,各位小伙伴是不是对于Java面试很头疼呢?

我以前跟你们一样也是如此,今天我给大家分享一些经验与技巧。

首先回顾一下,上一篇文章,我们说到了对JAVA的理解,那么这一节课开始我们将重点分析第一点,也就是什么是JAVA的平台无关性,说到这个平台无关性,小伙伴们是不是很懵逼呢?这句话的意思是,一次编译,到处运行。那我们先看看Java程序如何被创建。

Java程序的创建和运行

首先我们也知道一个命令Javap,这个是Java自带的反解析编译器,可以查看Java编译器生成的字节码。那我们说说Java的运行过程。

1.Java源文件被编译器编译成字节码文件。

2.JVM将字节码文件编译成相应的操作系统机器码。

3.机器码调用相应操作系统的本地方法库执行相应的方法。

也就是说我们的Java源文件,通过javac命令编译生成字节码 .class文件,之后 .class文件又被JVM中的解释器编译成机器码,运行在不同的操作系统上(windows,linux,unix,mac等)运行。每种操作系统的解释器都是不同的,但基于解释器实现的虚拟机是相同的,这也是Java能够跨平台的愿因了。

需要注意的一点是:在一个Java进程开始运行或,虚拟机就开始实例化了,有多个进程就会启动多个虚拟机实例。进程退出或关闭,则虚拟机实例就会消亡,在多个虚拟机实例之间不能共享数据。

接下来我们留一个作业。

为什么要先编译成字节码再解析成机器码,而JVM不直接将字节码解析成机器码呢?

好了这节就到这里,我们下节分析这个问题。

欢迎关注,转发与评论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值