① jdk和java虚拟机的区别
区别没想过。。。名字不一样吧。java开发的通用工具??基本都是ECLIPSE,很多都是基于他的基础的,也就是自己弄的插件组装而成的,但实际上还是ECLIPSE
② JAVA虚拟机和JDK是什么关系.
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
JAVA虚拟机和JDK是什么关系.
有了JAVA虚拟机是不是就可以在电脑上运行JAVA程序?
解析:
Java虚拟机是一个想象中的机器,在实际的计饥含贺算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
JDK (Java Development Kit)
JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什烂派么Java应用服务器实质都是内置了某个版本的JDK。因此掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的老档JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。
③ 已经安装过jdk,为什么打开eclipse时,还显示没有Java虚拟机
安装过jdk之后,打不开eclipse,可能的原因如下:
1、没有配置正确jdk的环境变量。重新检查一下环境变量是否写对源带。检查你配置的JDK环境变量。
2、你安装的eclipse是win32位的,jdk也要对应是32位的,否则也是启动不了。
3、java -version查看java版本的命令JDK版本和eclipse的版本不匹配,导致无法加载。请确认jdk的位数。
4、eclipse的虚拟内存不够,需要到配置文件里面扩大虚拟内存大小。
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模颂谨拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译雹樱芦虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。
Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。
④ 是不是安装好了JDK就不要安装JAVA虚拟机了/
是的,装JDK就可以了,因为JDK包含Java虚拟机。
在JDK的安装目录下有一个jre目孝早胡录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
从这个层面上来看,在执行一个所谓的java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程,而不是我们写的一个个的class文件。这个叫做虚拟机的进程处理一些底层的操作,比如内存的分配和释放等等。我们编写的class文件只是虚拟机进程执行时需要的“原料”。
这些“原料”在运行时被加载到虚拟机中,被虚拟机解释执行,以巧拦控制虚拟机实现我们java代码中所定义的一些相对高层的操作,比如创建一个文件等,可以将class文件中的信息看做对虚拟机的控制信息,也就是一种虚拟指令。
(4)java虚拟机与jdk扩展阅读
编译之后的class文件是作为Java虚拟机的原料被输入到Java虚拟机的内部的。其实在Java虚拟机内部,有一个叫做类加载器的子系统,这个子系统用来在运行时根据需要加载类。注意上面一句话中的“根据需要”四个字。
在Java虚拟机执行过程中,只有他需要一个类的时候,才会调用类加载器来加载这个类,并不会在开始运行时加载所有的类。就像一个人,只有饿的时候才去吃饭,而不是一次把一年的饭都吃到肚子里。
总结:
1、虚拟机并不神秘,在操作系统的角度看来,它只是一个普睁锋通进程。
2、这个叫做虚拟机的进程比较特殊,它能够加载我们编写的class文件。如果把JVM比作一个人,那么class文件就是我们吃的食物。
3、加载class文件的是一个叫做类加载器的子系统。就好比我们的嘴巴,把食物吃到肚子里。
4、虚拟机中的执行引擎用来执行class文件中的字节码指令。就好比我们的肠胃,对吃进去的食物进行消化。
5、虚拟机在执行过程中,要分配内存创建对象。当这些对象过时无用了,必须要自动清理这些无用的对象。清理对象回收内存的任务由垃圾收集器负责。就好比人吃进去的食物,在消化之后,必须把废物排出体外,腾出空间可以在下次饿的时候吃饭并消化食物。