*进程的描述:
做为执行蓝本的同一段程序,可以被加载到系统的不同内存区域分别执行,形成不同的进程
*什么是 ClassLoader
在流行的商业化编程语言中,Java 语言由于在 Java 虚拟机 (JVM) 上运行而显得与众不同。这意味着已编译的程序是一种特殊的、独立于平台的格式,并非依赖于它们所运行的机器。在很大程度上,这种格式不同于传统的可执行程序格式。
与 C 或 C++ 编写的程序不同,Java 程序并不是一个可执行文件,而是由许多独立的类文件组成,每一个文件对应于一个 Java 类。
此外,这些类文件并非立即全部都装入内存,而是根据程序需要装入内存。ClassLoader 是 JVM 中将类装入内存的那部分。
详见:http://www-900.ibm.com/developerWorks/education/java/j-classloader/tutorial/j-classloader-2-1.shtml
综述(个人见解):
进程是程序在内存中的不同拷贝(行业共识),而jvm是运行java程序的一个操作系统程序,一般的一个jvm运行一个java应用程序,所以可以说一个jvm进程启动一个java进程。
java class是在jvm进程执行时被ClassLoader装载志内存执行,class
做为执行蓝本的同一段程序,可以被加载到系统的不同内存区域分别执行,形成不同的进程
*什么是 ClassLoader
在流行的商业化编程语言中,Java 语言由于在 Java 虚拟机 (JVM) 上运行而显得与众不同。这意味着已编译的程序是一种特殊的、独立于平台的格式,并非依赖于它们所运行的机器。在很大程度上,这种格式不同于传统的可执行程序格式。
与 C 或 C++ 编写的程序不同,Java 程序并不是一个可执行文件,而是由许多独立的类文件组成,每一个文件对应于一个 Java 类。
此外,这些类文件并非立即全部都装入内存,而是根据程序需要装入内存。ClassLoader 是 JVM 中将类装入内存的那部分。
详见:http://www-900.ibm.com/developerWorks/education/java/j-classloader/tutorial/j-classloader-2-1.shtml
综述(个人见解):
进程是程序在内存中的不同拷贝(行业共识),而jvm是运行java程序的一个操作系统程序,一般的一个jvm运行一个java应用程序,所以可以说一个jvm进程启动一个java进程。
java class是在jvm进程执行时被ClassLoader装载志内存执行,class
解决方案 »
- java调用.net Webservice
- APPLET计算器程序 C 键不起作用 (偶不懂JAVA,别人让帮忙看,麻烦大家弄一下)
- 为什么j2se 5.0 建立网络连接很慢
- JTable中Cell的数据监听问题?
- 试想一个方法/数据结构,实现无限长度有理数的四则及混合运算。
- 图像显示的问题
- 如何在JAVA中修改文件的属性,比如由只读改为可读写。
- 首先,这不是个问题,是个总结。(弱智型的。大牛们不要笑话俺)
- 请问如何在有符号数与无符号整数间进行转化--JAVA中有没有现成的类或方法
- jvm内存不足时程序会出现什么例外呢??
- 一小段程序,麻烦诸位大侠指点一下。(急)
- 决定学Java,有没有小而好用的Java编辑器写代码,就象TurboC一样?
ClassLoader的工作是在jvm进程启动时装载要执行的java class文件,所以【一般情况】下一个jvm进程的ClassLoader装载的class都是属于同一进程。
基于这种情况,不同java进程也就是不同jvm执行java程序的过程。
【注】以上都是一般(普通)jvm情况下,有消息说:Luke Gorrie 编写的 Echidna 是一个开放源码包,它可以使您在【单个虚拟机上运行多个 Java 应用程序】。它使用定制的 ClassLoader,通过向每个应用程序提供该类文件的自身副本,以防止应用程序互相干扰。
这样的话,同一jvm的ClassLoader可以产生不同的java进程。技术在快速的变化,一些技术说明或者我们技术人员的理解也会相应的改变。自知理解谬误甚多,紧供参考。