Java向服务端转身 系统平台所对应的机器语言 虚拟CPU的机器语言字节码 bytecode
2024-08-20 23:21:51
小结:
1、虚拟CPU的模拟器:java虚拟机 JVM
Java将虚拟机(VM)作为插件集成到浏览器中,将编译后的Java程序(Applet)在虚拟机上运行,这种技术
当初是为了增强浏览器的功能。
Java所具备的VM和平台无关性字节码等特性,目的就是以在客户端运行Applet为目的的。
在各种不同的环境下能够产生相同的行为,这样的特性对于服务器端来说虽然也不能说是毫无价值,但是服务器环境
是可以由服务提供者来自由支配的,因此至少可以说,这样的特性无法带来关键性的好处吧。
另一方面。在客户端环境中,操作系统和浏览器都是千差万别的,因此对平台无关性的要求一直很高。
功能强大:
具备垃圾回收机制、内置异常处理、标准库也运用异常处理来设计
高性能
为了实现“一次编写、到处运行”的宣传口号,并不是将程序直接转换为系统所所对应的机器语言,而是转换为虚拟CPU
的机器语言“字节码”(Bytecode),并通过搭载虚拟CPU的模拟器JVM来运行。
JVM归根结底其实是在运行时用来解释字节码的解释器,理论上说运行速度应该无法与直接生成机器语言的原生编译器
相媲美。
速度没有达到编译型语言应有的运行速度。
JIT编译技术
在运行时将字节码转换成机器语言,经过转换之后就可以获得和原生编译一样快的运行速度。
最新文章
- JavaScript闭包理解【关键字:普通函数、闭包、解决获取元素标签索引】
- Mvc视图的那些事
- css新特性 box-flex/flex 弹性盒状模型
- redis 简单应用
- Windows Phone App的dump 文件分析
- ffmpeg在shell循环中只执行一次问题
- Python强化训练笔记(四)——字典的排序
- PHP错误日志控制(display_errors和error_reporting)
- subline快捷键
- mongodb持久化
- 使用python进行接口测试
- mutate 转换
- 一个可以拓展的垂直多级导航栏 Demo
- BZOJ 1101 [POI2007]Zap(莫比乌斯反演)
- Python基础篇(九)
- Redis缓存穿透、缓存雪崩和缓存击穿理解
- idea 修改单个项目的 默认编码格式
- 线程中join()的用法
- Bash : IO 重定向
- Python中cPickle