Java的跨平台原理??(细节) java跨平台是因为它们被编译成字节代码,字节代码与平台无关,你只要在该平台安装了能解释这些代码的环境即可,即jre。java程序就能运行了。基本原理就是这个。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不同的操作系统有不同的JVM,就是通过JVM来运行class文件已达到跨平台的目的。想了解细节最好看一下《java虚拟机规范》及《编译原理》等。想更深入了解它的原理,问James Gosling吧,呵呵。 通常的编译器编译成二进制代码,可以在机器上直接运行,而java编译器把源代码编译成中间代码,通过虚拟机来执行。和系统没有关系(从用户的角度上来看),从而达到了跨平台。从调用的层次上来说通常的c程序执行是:c源程序通过c语言编译器-》二进制代码-》操作系统。而java源程序通过java编译器-》中间代码-》java虚拟机-》操作系统。也就是在中间增加了java虚拟机层。所以可以在不同的平台上来实现,平台的差异通过虚拟机来管理。更深入和复杂的可以参看楼上给出的书目 其实最核心的原理是,你可以把jvm看做一台电脑+操作系统的组合,.class就是可被机器执行文件,里面有各种指令;你可以认为jvm+class的组合和cpu+winOS/otherOS+bin是一样的 那就是说Java在源码与二进制码之间加了一层,这就是它的跨平台的本质吗? 那不同的操作系统平台就需要用不同的Java虚拟机了? .NET中微软中间语言是不是仿造Java 的字节码设计出来的?其本质差别在哪呢? 简单来讲,针对不同操作系统或硬件写好不同的Java虚拟机(或JRE),但有一点他们能解析相同格式的class Bytecode,所以就跨平台了。因此有人就说:Java不是跨平台(如真正的跨平台的C也得作数据类型上的调整),它本身就是一个平台。 菜鸟求指教 请问:程序片的概念? JButton如何设置单击的效果 如何做这样的java程序 请教:客户端、服务端同时初始化ObjectOutputStream、ObjectInputStream时卡住了 why~~~~~ Java中如何判断当前网络是否连通。 JFrame问题 关于applet 100分求线程例子程序: 急救!!!!怎么能编译 不能运行 拜托了,大哥哥们,请问java里面文本格式怎么设置啊? 请教:在java中采用哪种驱动连接可以访问到远程服务器上的sqlServer数据库
想了解细节最好看一下《java虚拟机规范》及《编译原理》等。
想更深入了解它的原理,问James Gosling吧,呵呵。
这就是它的跨平台的本质吗?
其本质差别在哪呢?