Java的跨平台性

大家都知道高级语言是需要“翻译”成机器语言后才能与机器交流,我们所熟悉的java,C,C#,ruby,python等都是高级语言,当然都是需要翻译之后才能被计算机所识别并反馈交流。怎么“翻译”,有2种方式,一种是编译,一种是解释,两者各有优缺点。

一、什么是编译

     编译就是源代码经过编译器并生成目标文件,然后执行目标文件后输出结果。编译性语言如c,c++,c#,编译的时候如果源代码有错误,将无法生成目标文件,直到代码无语法错误,这样的话可以一次编译,N次执行,执行效率高,但是因为编译性语言的目标文件只能在对应平台中的编译器中执行,想让其在另外一个平台上运行,只能将源代码移植到相应的平台上,重新编译,那么再次编译的时候可能会因为资源库的不同导致编译失败,进而重新修改代码再次编译,这样的话实现跨平台的难度就会增大。

二、什么是解释

      解释就是源代码经过解释器后直接输出结果,不生成目标文件。解释语言如htm,js等,解释性语言因为不是预先编译,所以只有到执行的时候解释器才会知道是否有语法错误(经常报的js错误就是这种?),而且因为每执行一次就会“翻译”一次,导致重复“翻译”,执行效率不高,但是执行速度很快,而且解释性语言跨平台很容易,只需要有相应平台的解释器即可,不需要修改源代码即可运行。


总是编译性语言,解释性语言各有利弊,编译性语言执行效率高,安全性强,适用于效率高的系统,解释性语言开发速度快,简单,灵活,一般用于开发网站前台或者性能要求不高的网站。


三、Java语言是编译-解释性

  java不是真正的编译语言,也不是真正的解释性语言,是编译+解释性的,java的编译过程是:源代码经过编译生成字节码文件(.class文件,该文件不能直接执行),然后在解释器中执行.class文件并输出结果。编译生成的.class文件是于平台无关的,不面向平台,只面对jvm(可以理解为解释器),只要有对应平台的解释器就可以运行.class文件,因此java是编译一次,即可到处运行,很好地实现了跨平台。



以上是初学java的一点总结!若有错误,欢迎指正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值