一、走近JVM
感觉JVM
这个东西很深澳,网上也很少有这方面的资料,最近有兴趣就打算开始研究起来,做好笔记,以后回来再看。
注:实验的环境为:1.6.0_10-rc2
下面是
JDK提供的帮助文档上一名话,我简单翻译了一下:
原文如下:
我的翻译:
1、
JDK提供了一种或多种
JVM
的实现
l
JAVA HotSpot Client VM
2
JAVA HotSpot Server VM
下面我们针对JDK
帮助文档上说的这
2
句话来做测试:
STEP1:
打开命令提示符,输入java
【确保已经配置好环境变量】
大家请看红色框部分。当我们启动一个JAVA
程序的时候,可以选择用
Client
和
Server
虚拟机。
OK,到这里大家对
JVM
的
2
种实现有基本了解,下面我们就写一个程序来试一试,分别让
client
和
server
这
2
个虚拟机来执行我们的程序:
第一步:
新建一个java
文件,敲入以下代码:
public class JVMTest
{
public static void main(String args[])
{
System.out.println("Hello JVM");
}
}
第二步:
编译这个文件:
原文件:
编译:
第三步:用HotSpot client VM
来执行上面的程序,如下图:
大家可以看到,结果正确的执行了。
第四步:用
HotSpot server VM来执行上面的程序,如下图:
这个时候出现一个
error,告诉我们没有
server JVM,
这是由于什么原因呢,在下面的例子中,我会给大家解释,呵呵。
二、
到底有几个JVM
我们自己写的一个JAVA
程序运行的时候,到底是哪个
JVM
来为我们服务的?不知道大家有没有想过这个问题?系统中有几个
JVM
,他们之间有联系吗?还是系统只存在一个
JVM
,所有的程序都由这个
JVM
来执行。
要解决这个问题,我想要用到二个JAVA
提供的工具。
l
Jvisualvm
在命令行敲入Jvisualvm
:
会出现以下界面:
大家可以看到有一个
local和
remote
选项,
Local:表示本地的
JVM
列表。
Remote:表示远程的
JVM
列表。
Snapshots:请看后方,本节不介绍。
如果你本地没有启动其它的JAVA
应用程序,
Local
下面默认就只有一个
JVM
列表,(
JVM
)。这个就是当前运行
Jvisualvm
命令出来的窗口,这个程序本身也是
JAVA
语言写的。
双击这个JVM
,会出现如下图所示:
我们改一下我们刚刚写的那个程序,代码如下:
public class JVMTest
{
public static void main(String args[])
{
for(int i=0;i<Integer.MAX_VALUE;i++)
{
System.out.println("Hello JVM");
}
}
}
再编译运行这个程序,
注意观察
VisualVM
里的变化:
大家可以看到会多出一个正在运行的JVM
。
总结:一个应用程序会对应一个JVM
,当我们启动一个
JAVA
程序的时候,
JDK
会为我们分配一个
JVM
来执行程序。
提示:
在windows
系统上,启动
JvisualVm
的时候可能会出现如下图所示错误:
大家可以点击这个链接,里面有关系错误的详细说明,出现这种情况可能有2
种原因:
1、系统权限不够。
2、安装
JDK
的盘是
fat
格式的
|
如果你喜欢这个文档,你可以下载保存
- 大小: 4.3 KB
- 大小: 45 KB
- 大小: 3.6 KB
- 大小: 4.8 KB
- 大小: 6.2 KB
- 大小: 1.4 KB
- 大小: 9.7 KB
- 大小: 879 Bytes
- 大小: 131.3 KB
- 大小: 139.8 KB
- 大小: 11.9 KB
分享到:
相关推荐
深入JVM内核—原理、诊断与优化视频教程 深入JVM内核—原理、诊断与优化视频教程
深入JVM内核—原理、诊断与优化视频教程 深入JVM内核—原理、诊断与优化视频教程
深入jvm 内核-原理,诊断于优化视频教程.算是比较基础的
深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm
深入JVM内核—原理、诊断与优化视频教程———目前,Java是更为流行的编程语言之一,它的基础平台就是JVM。除了Java,如JRuby、Scala、Clojure等语言也运.
1、java虚拟机的基本介绍。 2、字节码的执行 3、常用的jvm参数配置 4、算法和种类 5、gc参数配置 6、类加载器 7、性能监控工具 8、jvm堆栈分析
本书讲述了Java虚拟机一运行 所有Java程序的抽象计算机,还讲了几种与虚拟机密切相关的核心Java API。本书通过分析讲解、可运行的示例、参考资料和applet (它作为文中所述概念的交互式例示),提供了Java技术的深人...
[jvm]深入JVM(一):从"abc"=="abc"看java的连接过程收藏 一般说来,我不关注java底层的东西,这次是一个朋友问到了,注意不光是 System.out.println("abc"=="abc");返回true, System.out.println(("a"+"b"+"c")....
JVM 深入JVM JVM详解 JVM知识点 java虚拟机 深入java虚拟机
JVM 完整深入解析.pdf
每个使用Java的开发者都知道Java字节码是在JRE中运行,而JVM则是JRE中的核心组成部分,承担分析和执行Java字节码的工作,而Java程序员通常并不需要深入了解JVM运行情况就可以开发出大型应用和类库。尽管如此,如果你...
深入JVM整理文档
Inside Java Virtual Machine 中文版pdg版本 想深入了解JVM的必备书籍,欢迎下载 想深入了解JVM的必备书籍,欢迎下载 想深入了解JVM的必备书籍,欢迎下载 想深入了解JVM的必备书籍,欢迎下载
深入JVM内核—原理、诊断与优化视频教程
深入理解JVM.
jvm虚拟机深入讲解,理解jvm的核心原理,是学习jvm的原理的很好教科书
深入jvm垃圾回收 调优细节。
第一课 初识JVM JVM分类 Java语言规范 JVM规范 介绍JVM的基本知识和发展历史,并介绍了Java语言规范和JVM规范。 第二课 JVM运行机制简介 堆、栈、方法区等 JVM启动流程 内存模型和volatile实例 解释和编译运行的...
深入拆解一线大厂JVM 讲师:宋红康v1.1.mmap