Java程序员不可不知的秘密 JVM

1.基本概念

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。[来自百度百科]

2. java -help 命令

在这里插入图片描述

用法: java [-options] class [args…]
(执行类)
java [-options] -jar jarfile [args…]
(执行 jar 文件)

参数作用
-d32使用 32 位数据模型 (如果可用)
-d64使用 64 位数据模型 (如果可用)
-server选择 “server” VM默认 VM 是 server.
-cp<目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>用 ; 分隔的目录, JAR 档案和 ZIP 档案列表, 用于搜索类文件。
-D<名称>=<值>设置系统属性
-verbose:[class|gc|jni]启用详细输出
-version输出产品版本并退出
-version:<值>警告: 此功能已过时, 将在未来发行版中删除。 需要指定的版本才能运行
-showversion输出产品版本并继续
-jre-restrict-search | -no-jre-restrict-search警告: 此功能已过时, 将在未来发行版中删除。在版本搜索中包括/排除用户专用 JRE
-? -help输出此帮助消息
-X输出非标准选项的帮助
-ea[:…|:] -enableassertions[:…|:]按指定的粒度启用断言
-da[:…|:] -disableassertions[:…|:]禁用具有指定粒度的断言
-esa | -enablesystemassertions启用系统断言
-dsa | -disablesystemassertions禁用系统断言
-agentlib:[=<选项>]加载本机代理库 , 例如 -agentlib:hprof另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
-agentpath:[=<选项>]按完整路径名加载本机代理库
-javaagent:[=<选项>]加载 Java 编程语言代理, 请参阅 java.lang.instrument
-splash:使用指定的图像显示启动屏幕

3. java -X 命令

在这里插入图片描述

参数说明
-Xmixed混合模式执行 (默认)
-Xint仅解释模式执行
-Xbootclasspath:<用 ; 分隔的目录和 zip/jar 文件>设置搜索路径以引导类和资源
-Xbootclasspath/a:<用 ; 分隔的目录和 zip/jar 文件>附加在引导类路径末尾
-Xbootclasspath/p:<用 ; 分隔的目录和 zip/jar 文件>置于引导类路径之前
-Xdiag显示附加诊断消息
-Xnoclassgc禁用类垃圾收集
-Xincgc启用增量垃圾收集
-Xloggc:将 GC 状态记录在文件中 (带时间戳)
-Xbatch禁用后台编译
-Xms设置初始 Java 堆大小
-Xmx设置最大 Java 堆大小
-Xss设置 Java 线程堆栈大小
-Xprof输出 cpu 配置文件数据
-Xfuture启用最严格的检查, 预期将来的默认值
-Xrs减少 Java/VM 对操作系统信号的使用 (请参阅文档)
-Xcheck:jni对 JNI 函数执行其他检查
-Xshare:off不尝试使用共享类数据
-Xshare:auto在可能的情况下使用共享类数据 (默认)
-Xshare:on要求使用共享类数据, 否则将失败。
-XshowSettings显示所有设置并继续
-XshowSettings:all显示所有设置并继续
-XshowSettings:vm显示所有与 vm 相关的设置并继续
-XshowSettings:properties显示所有属性设置并继续
-XshowSettings:locale显示所有与区域设置相关的设置并继续

4. javac -help 命令

在这里插入图片描述

用法: javac <options> <source files>

参数说明
-g生成所有调试信息
-g:none不生成任何调试信息
-g:{lines,vars,source}只生成某些调试信息
-nowarn不生成任何警告
-verbose输出有关编译器正在执行的操作的消息
-deprecation输出使用已过时的 API 的源位置
-classpath <路径>指定查找用户类文件和注释处理程序的位置
-cp <路径>指定查找用户类文件和注释处理程序的位置
-sourcepath <路径>指定查找输入源文件的位置
-bootclasspath <路径>覆盖引导类文件的位置
-extdirs <目录>覆盖所安装扩展的位置
-endorseddirs <目录>覆盖签名的标准路径的位置
-proc:{none,only}控制是否执行注释处理和/或编译。
-processor [,,…]要运行的注释处理程序的名称; 绕过默认的搜索进程
-processorpath <路径>指定查找注释处理程序的位置
-parameters生成元数据以用于方法参数的反射
-d <目录>指定放置生成的类文件的位置
-s <目录>指定放置生成的源文件的位置
-h <目录>指定放置生成的本机标头文件的位置
-implicit:{none,class}指定是否为隐式引用文件生成类文件
-encoding <编码>指定源文件使用的字符编码
-source <发行版>提供与指定发行版的源兼容性
-target <发行版>生成特定 VM 版本的类文件
-profile <配置文件>请确保使用的 API 在指定的配置文件中可用
-version版本信息
-help输出标准选项的提要
-A关键字[=值]传递给注释处理程序的选项
-X输出非标准选项的提要
-J<标记>直接将 <标记> 传递给运行时系统
-Werror出现警告时终止编译
@<文件名>从文件读取选项和文件名
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐