网站商品管理功能,淘宝联盟如何建设个人网站,网络广告设计,wordpress 淘宝 采集相信大家已经了解到Java具有跨平台的特性#xff0c;即“一次编译#xff0c;到处运行”#xff0c;例如在Windows下编写的程序#xff0c;无需任何修改就可以在Linux下运行#xff0c;这是C和C很难做到的。 那么#xff0c;跨平台是怎样实现的呢#xff1f;这就要谈及…相信大家已经了解到Java具有跨平台的特性即“一次编译到处运行”例如在Windows下编写的程序无需任何修改就可以在Linux下运行这是C和C很难做到的。 那么跨平台是怎样实现的呢这就要谈及Java虚拟机Java Virtual Machine简称 JVM。 JVM也是一个软件不同的平台有不同的版本。我们编写的Java源码编译后会生成一种 .class 文件称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说只要在不同平台上安装对应的JVM就可以运行 字节码文件运行我们编写的Java程序。 而这个过程中我们编写的Java程序没有做任何改变仅仅是通过JVM这一”中间层“就能在不同平台上运行真正实现了”一次编译到处运行“的目的。 JVM是一个”桥梁“是一个”中间件“是实现跨平台的关键Java代码首先被编译成字节码文件再由JVM将字节码文件翻译成机器语言从而达到运行Java程序的目的。 注意编译的结果不是生成机器码而是生成字节码字节码不能直接运行必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的但是由JVM翻译成的机器码却不一样。 所以运行Java程序必须有JVM的支持因为编译的结果不是机器码必须要经过JVM的再次翻译才能执行。即使你将Java程序打包成可执行文件例如 .exe仍然需要JVM的支持。 虽然JVM让Java实现了跨平台却牺牲了效能每次运行软件都要翻译字节码内存占用多CPU使用率高。 更加不能接受的是操作系统默认不会安装JVM用户安装你的程序之前必须要安装JVM并正确设置你可以要求小白用户安装你的软件但是你能期望他了解JVM的有关知识并正确安装设置吗 虽然你可以将JVM集成在你的程序中自动安装并设置不让用户干预但是你希望附带一个比你的程序还要大好多的JVM吗一个软件这样做或许可以接受成千上万个软件都这样做那用户要安装多少个JVM磁盘空间要浪费多少 种种原因注定了Java客户端不利于推向市场让小白用户接受。不过话又说回来客户端开发也不是Java的初衷Java最初是面向嵌入式的却随着互联网的兴起而快速成长在Web开发上大显身手。 注意跨平台的是Java程序不是JVM。JVM是机器码不能跨平台不同平台下需要安装不同版本的JVM。 图1 JVM实现跨平台