java是解释型语言吗?

发布网友 发布时间:2022-02-28 22:52

我来回答

2个回答

热心网友 时间:2022-03-01 00:21

1.class文件中不是机器语言,是经过编码的8位字节二进制流(注意虽然表示方法都似乎一样的,但是语义是不一样的,class文件有自己的编码格式),数据项按顺序存储在class文件中,向另的项之间没有任何间隔,使得class文件紧凑。其占据多个字节空间的项按高位在前的顺序分为几个连续的字节存放。其实java语言与class文件具有非排他性,两者之间没有必然的联系(当然,普遍认为有联系)。

2.不同的平台下虚拟机的细节实现不一样,这就使得它解释执行的class文件能够适应不同的平台。

3.使用虚拟机会减少代码的执行效率,要增强generalization(对不同平台的支持)就必须减少specilization(对某一平台的优化),鱼与熊掌不可兼得的。

-----------------------PS分割线---------------------------
PS:如果你对java的原理更感兴趣的话,关于更多的讲解可以看看Bill Venners的《深入Java虚拟机》,很有用处,虽然只是讲到java 1.2,但是基本原理都差不多的。
PS PS:class文件的开头部分都是一个称作魔数的段,其内容为0xCAFEBABE。

热心网友 时间:2022-03-01 01:39

1.class不是机器语言,它是由jvm加载后解释的。
2.针对不同的平台,有不同的jvm。
3.C++编译为本地代码,由相关的操作系统执行,所以不能跨平台。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com