声明1:根据JVM群397196583整理的常见问题,答案经过群主验证,喜欢JVM的同学可加群交流。
声明2:问题一直在持续整理中….也欢迎大家来群里补充说明,加群可下载完整版。
1、JDK-JRE-JVM之间的关系
(1)JDK是JAVA的核心,包括JRE(JAVA 运行环境)、编译器等,它是Java的开发工具包。JDK的主流产品是由SUN公司开发的,JDK本身是用JAVA编写的,也包含部分底层C/C++代码,安装包的SRC.ZIP就是JDK的源码。
(2)JVM(JAVA虚拟机),是可以运行JAVA代码的假想计算机,主要任务是把JAVA字节码编译成特定计算机的机器指令,是JAVA实现“一次运行,处处运行”的关键。
(3)JRE是JAVA运行环境,包括JVM、JAVA平台核心类和支持文件,如果只是运行JAVA程序的话,可以下载JRE就可以了,如果要开发的话,就要下JDK了。
JAVA运行顺序,先编写JAVA程序块,然后通过JDK的编译器把JAVA程序编译成字节码生成class文件,然后通过JVM运行。
2、Eclipse提示JVM版本太低了,咋办?
JVM是被JRE版本限制的。可以检查两处:
1、java -version命令查看当前jvm版本。
2、检查你的JAVA_HOME、CLASSPATH、PATH环境变量是否使用了新版本的JDK。
3、如何增加JVM内存?
JAVA虚拟机内存容量要根据你机器的实际内存容量来分配的,如果你用Eclipse来处理的话,可以尝试修改Eclipse配置设置,即eclipse.ini配置文件:Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx256m,将Xmx改为512m或者更大,如果改了过后,打不开Eclipse的话,则说明系统内存不够。
4、系统时间和JVM的Date时间不一致?
造成这种问题的原因可能是:你的操作系统时区跟你JVM的时区不一致。
你的操作系统应该是中国的时区吧,而JVM的时区不一定是中国时区,你在应用服务器的Java虚拟机添加如下配置: -Dfile.encoding=UTF8 -Duser.timezone=GMT+08
5、怎么给JVM加启动参数?
在tomcat的bin目录里增加setenv.bat
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx712m -XX:MaxPermSize=128m
6、JVM启动时的有哪三个类加载器?
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构:
l bootstrap classloader
l extension classloader
l system classloader
7、JVM的启动步骤是什么 ?
JVM工作原理和特点主要是指操作系统装入JVM,是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境.
- 创建JVM装载环境和配置
- 装载JVM.dll
- 初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例
- 调用JNIEnv实例装载并处理class类。
8、Tomcat中会启动一个jvm还是多个jvm?
截止目前为止,一个tomcat,无论里面多少个host/engine/context,就是一个jvm进程。
9、JVM怎么优化?
这需要看一本书了,推荐一本《实战Java虚拟机——JVM故障诊断与性能调优》,不谢!简单来说就是设置一下启动参数,比如-Xms512m -Xmx512m -XX:NewSize=128m -XX:MaxNewSize=128m
10、jvm是否可以处理多个Eclipse的调试请求?
单一JVM进程只可处理一个调试连接客户端,当然 Eclipse 可以开启多个 JVM 调试进程。
- 优优码新浪微博
-
优优码公众号