首页 技术 正文
技术 2022年11月11日
0 收藏 404 点赞 2,915 浏览 557 个字

问题

  1. 谈谈对 Java 平台的理解
  2. Java是解释执行的 这句话对么
  3. 程序的编译与解释有什么区别

Java 平台的了解

Java的主要特点是两个,

  1. 编写一次到处运行 Write once, run anywhere
  2. 具有垃圾回收

编写一次到处运行是说通过 JVM这一层抽象可以让 Java 代码在不同的 CPU 平台转换成相同的字节码, 然后通过不同平台定制的虚拟机来执行字节码. 这也就是通过在代码和目标平台增加抽象层来解决问题.

Java 通过垃圾回收器来回收内存. 不需要程序员来显示的释放对象. 但是也增加了消耗, 使用不当会产生内存泄漏的问题.

Java是解释执行的 这句话对么

这句话不完全对.
通常来说, Java代码先有 javac 编译成平台无关的字节码, 然后再有 jvm 解释执行.
在 Hotspot Jvm 中有提供 JIT编译器, 有一些热点代码编译成机器码. 这部分热点代码属于编译执行.

程序的编译与解释有什么区别

编译和解释的区别在于代码什么时候翻译成目标CPU系统的机器码
程序的编译相当于将全部代码转换成机器码, 然后逐行执行机器码.

程序的解释相当于增加了一种中间代码, 这种代码在运行过程中才被翻译成目标CPU指令.

总之:
1,编译型语言在编译过程中生成目标平台的指令,解释型语言在运行过程中才生成目标平台的指令。
2,虚拟机的任务是在运行过程中将中间代码翻译成目标平台的指令。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,105
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,582
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,429
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,836
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,919