当前位置:首页 » 操作系统 » java虚拟机源码

java虚拟机源码

发布时间: 2022-05-01 15:28:47

‘壹’ 为什么java编译成字节码解释执行而不是直接解释执行源码

为了跨平台
编译成的字节流文件.class,与硬件和操作系统无关,这是跨平台基础,然后具体执行,再用各自平台解释器,解释成本地机器码
更多交流,进我空间
------------------------------------------
java是一种编译+解释的语言,编译的结果本身保证了代码安全和版权,如果全部解释源代码,象早期的ASP,那JAVA就不敢用于银行、证劵等安全性较高的场合

‘贰’ java工作原理

Java工作原理
由四方面组成:

(1)Java编程语言
(2)Java类文件格式
(3)Java虚拟机
(4)Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类 ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。

‘叁’ JAVA虚拟机的技术难度比操作系统难吗

两者各有难点,个人觉得都很难,否则Sun就可以造一个和微软一样的操作系统, 而微软也可以造一个虚拟机来和Sun对抗, 事实上微软后来真的造了类似的东西出来, 微软为了把java程序员吸引到他的平台上来,就有了VJ++。 后来有了 C# 平台。 但都是没有像java那样做得专业。 Sun是没那么容易被打败的.所以你不觉得java的虚拟机还有点技术含量的吧? 哈哈

现在从技术细节上来分析:
1。 操作系统所面对的技术是有 内存管理、进程调度、设备管理等等等等
2。 相对于虚拟机,它相当于一个大管家,所有java做出来的应用,都先经过虚拟机,再由虚拟机转交给操作系统。在这个意义上,虚拟机相当于一个大型软件,它可以管理其它的软件。然而,在虚拟机下面也运行着大大小小的N个java程序,也需要对这些程序进行内存管理,进程的调度。它为它下面的所有程序做好了内存安全机制,垃圾回收机制,try异常捕捉机制等等,(普通的C程序没有这些) 在这个意义上,虚拟机又像是一个操作系统;

补充楼主的补充:

C语言的程序无法做到在一个平台上制作,代码拿到另一个平台编译后就可以运行! 最重要的原因是字节长度问题,如在32位机器上一个整数占4个字节,但在64位机器上就占8个字节。 这时程序编译就会出错。
一个字节占8位,所以32位有4个字节,所以32位机器每次进行操作的单位是4字节,而64位机器是8字节,这是速度明显快过32机的原因。
所以~~~~~~~ 很多在windowsXP下可以跑的游戏和软件在Windows Vista下去跑就会挂掉。 或者根本不给你安装.

虚拟机在这两年内是不太可能开源的,sun是有限制地进行了开源,他开源的是他的一部分Java编程语言, 你用这些java代码是开源的,用它们来制作软件,但是软件必须跑在虚拟机之上,虚拟机就不是开源的了。也许过几年java会做一些虚拟机的开源项目出来,但现在还不会。
另一方面,sun也做了一些开源项目, 如收购的Hibernater,mySql,等等

Bea是不是由sun做的我不太清楚,不过看Bea和sun的关系还是很紧的,我想既使不是sun做的,那技术也来源于sun

在嵌入式开发界,有很多公司都己经在开发虚拟机,但这些只是sun的冰山一角。这些虚拟机只能运行在手机、电视机顶盒等上面跑Kjava的 cdc和cldc程序
离sun的差距还挺大, 但过几年世界上也许会有新的sun公司出来. 呵呵,让我们拭目以待

‘肆’ .java为后缀的源文件可以直接被java虚拟机加载运行吗

不可以,要先编译,方法是:
在cmd命令行下,输入javac命令,后面跟上你的java源文件。
编译成功后,就可以运行了!

‘伍’ 详细介绍什么是Java虚拟机

Java虚拟机(Java Virtual Machine,简称 JVM)
JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。

而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。

JVM是一个”桥梁“,是一个”中间件“,是实现跨平台的关键,Java代码首先被编译成字节码文件,再由JVM将字节码文件翻译成机器语言,从而达到运行Java程序的目的。
所以,运行Java程序必须有JVM的支持,因为编译的结果不是机器码,必须要经过JVM的再次翻译才能执行。即使你将Java程序打包成可执行文件(例如 .exe),仍然需要JVM的支持。

‘陆’ java源代码如何用

java源代码是txt格式的.java文件,用记事本就可以打开。
用eclipse打开java文件的方式是:
如果java文件是一个eclipse工程(根目录带有.project文件),用file/import/general/exist java project/(大概是)然后找到你的目录。
否则需要自己新建一个工程file/new/java project
然后把java文件拷贝到.src目录下。
.class文件是直接的编译好的文件,可以用jad把.class文件反编译成java文件,不过反编译的代码和原来的代码不一定完全一样。

‘柒’ java虚拟机工作原理

从宏观上介绍一下Java虚拟机的工作原理。从最初编写的Java源文件(.java文件)是如何一步步执行的,如下图所示,首先Java源文件经过前端编译器(javac或ECJ)将.java文件编译为Java字节码文件,然后JRE加载Java字节码文件,载入系统分配给JVM的内存区,然后执行引擎解释或编译类文件,再由即时编译器将字节码转化为机器码。主要介绍下图中的类加载器和运行时数据区两个部分。

‘捌’ 怎样把一个java源代码做成一个软件成品

  1. 其实就是用一个外部程序 调用java虚拟机运行你的java程序。

  2. 可以做一个批处理文件,在里面调用java 虚拟机运行你的java程序。

  3. 也可以用某种编程语言,像vb ,c 或c++编个程序,生成exe,能调用java虚拟机运行你的程序,很简单的。

【源代码】

源代码(也称源程序),是指一系列人类可读的计算机语言指令。 在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。

‘玖’ 请问通过Java虚拟机先编译源代码为字节码再由各平台解释器解释 各平台都有什么

java编译后的字节码-----Windows平台的java虚拟机----》Windows认识的
java编译后的字节码---------》Lin ux平台的java虚拟机-------》Lin ux平台
java编译后的字节码---------MacOS平台的java虚拟机——》MacOS平台
这3个平台基本是电脑大多数了 ,其他平台我也不知道有哪些了
手机平台 安卓和苹果。。。主流2个

‘拾’ 急求深入理解Java虚拟机JVM高级特性与最佳实践 源码

这方面的书我倒是没有看过 ,但是我看过一半的 java 。。。。编程思想 挺不错 很厚 讲java 讲的很到位 那本书适合 开发2-4年java程序员看 我推荐你看下 对要是找到 关于java虚拟机的 源码和高级特性 最好也给我一份 谢谢 研究研究

热点内容
虚幻4脚本 发布:2024-10-05 16:46:29 浏览:205
c可以用来编译系统软件吗 发布:2024-10-05 16:22:26 浏览:19
U盘和存储器 发布:2024-10-05 16:22:04 浏览:898
cmdc语言 发布:2024-10-05 15:58:32 浏览:553
服务器怎么弄公网ip 发布:2024-10-05 15:57:02 浏览:642
设备配置在什么地方 发布:2024-10-05 15:44:59 浏览:251
matlab外部接口编程 发布:2024-10-05 15:36:58 浏览:366
C事件编程 发布:2024-10-05 15:15:43 浏览:642
一台服务器出现两IP 发布:2024-10-05 15:10:05 浏览:928
md5加密算法c 发布:2024-10-05 15:05:40 浏览:764