java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。
1.java -verbose:class
在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX (XXX为程序名)你会在控制台看到加载的类的情况。
verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下: [Loaded java.io.FilePermission$1 from shared objects file] 当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。
2.java –verbose:gc
在虚拟机发生内存回收时在输出设备显示信息,格式如下: [Full GC 268K->168K(1984K), 0.0187390 secs] 该参数用来监视虚拟机内存回收的情况。
01 public class TestGC{
02
03 public static void main(String[] args) {
04
05 TestGC test = new TestGC();
06
07 System.gc();
08
09 }
10
11 }
在这个例子中,一个新的对象被创建,由于它没有使用,所以该对象迅速地变为可达,程序编译后,执行命令: java -verbose:gc TestGC 后结果为:
[Full GC 168K->97K(1984K), 0.0253873 secs]
机器的环境为,Windows 2000 + JDK1.3.1,箭头前后的数据168K和97K分别表示垃圾收集GC前后所有存活对象使用的内存容量,说明有168K-97K=71K的对象容量被回收,括号内的数据1984K为堆内存的总容量,收集所需要的时间是0.0253873秒(这个时间在每次执行的时候会有所不同)。
3.java –verbose:jni
-verbose:jni输出native方法调用的相关情况,一般用于诊断jni调用错误信息。
在虚拟机调用native方法时输出设备显示信息,格式如下: [Dynamic-linking native method HelloNative.sum ... JNI] 该参数用来监视虚拟机调用本地方法的情况,在发生jni错误时可为诊断提供便利。
分享到:
相关推荐
标题中的“HelloWorld的javap -verbose HelloWorld”指的是在Java编程环境中,通过`javap`这个命令行工具来反汇编一个简单的“HelloWorld”程序,以深入理解字节码的工作原理。`javap`是Java Platform Debugger ...
当我们需要对Java程序的运行过程进行详细分析,特别是诊断性能问题或内存泄漏时,`verbose`命令是一个非常有用的工具。本篇内容将深入探讨如何精简JRE并使用verbose命令来获取运行时的详细信息。 首先,精简JRE是...
8. -verbose:gc:实时垃圾收集信息。 9. -Xloggc:gc.log:指定垃圾收集日志文件。 10. -XX:+UseParNewGC:缩短 minor 收集的时间。 11. -XX:+UseConcMarkSweepGC:缩短 major 收集的时间。 PermGen space 是 ...
java -verbose:gc -Xloggc:/var/js/java.log -XX:+ PrintGCDetails -XX:+ PrintTenuringDistribution -XX:+ PrintGCTimestamps ... java -verbose:gc -Xloggc:/var/js/java.log -XX:+ PrintGCDet
例如,使用`java -verbose`或`javac -verbose`命令可以显示详细的编译和运行日志,这对于定位问题非常有帮助。 #### 6. 重视实践与源代码阅读 理论知识是基础,但实践是检验真理的唯一标准。在学习Java的过程中,...
作者建议通过在命令行中使用`java -verbose *.class`参数来观察类的加载过程。这样可以清晰地看到类文件被加载的顺序,只有当类的实例真正被创建时,对应的类文件才会被加载。这有助于理解Java如何在运行时管理类的...
例如,运行`java -verbose *.class`可以看到程序加载的类文件顺序,只有当我们实际使用到某个类的实例时,该类才会被加载。这有助于我们理解Java的运行时环境如何管理类的生命周期。 其次,了解类文件的查找原理也...
编码原从CRUD代码生成,基于Spring,带有Restful和Spring-Data。使用生成器的步骤: 该项目基于maven,codegen模块包含Velocity模板,这些模板生成Spring代码1-访问codegen项目文件夹并执行命令: mvn install 2-...
当你在命令行窗口运行Java程序时,通过添加`-verbose`参数,如`java -verbose *.class`,可以观察到类加载的过程。这样你会清晰地看到哪些类文件被加载,以及加载的顺序。Java遵循“按需加载”的原则,只有当类的...
当你在命令行中运行Java程序时,可以使用`java -verbose *.class`参数,这将显示程序加载的所有类文件,让你能够观察到类加载的顺序。只有当类的实例真正被创建时,对应的类文件才会被加载,这也是Java实现“按需...
- **使用`verbose`选项**:利用JDK提供的`-verbose`选项(例如`java -verbose`或`javac -verbose`),观察程序运行时JVM加载类的信息,加深对程序运行机制的理解。 - **构建个人代码库**:将自己编写的破坏性例程...
The JDK's reflection APIs are hard and verbose to use. Other languages have much simpler constructs to access type meta information at runtime. Let us make Java reflection better.
`jarsigner`是Java SDK中的一个工具,用于对Java或Android应用进行签名,包括APK文件。签名的过程是为了验证应用的来源和完整性,同时也是发布应用到Google Play或其他应用商店的必要步骤。 首先,我们需要理解`...
Java命令参数详解是Java开发中不可或缺的一部分,它们允许开发者对JVM(Java虚拟机)的行为进行微调,以优化程序的性能、控制内存使用、调试和监控等。本文将深入探讨一些关键的Java命令行参数。 1. **-version**: ...
wsimport -keep -d E:\javaimport -s C:\Users\Administrator\eclipse-workspace\sh_webservice_client\src\main\java -verbose -Xauthfile E:\11.txt -extension E:\SI_03DL4_ERP2HHGSBWX_CREAT_DG.wsdl
为了方便调试,可以使用`-verbose:class`选项启动Java应用程序,以查看JVM如何加载类: ```bash java -verbose:class a.b.test ``` 输出中将详细展示类的加载过程,帮助开发者追踪问题所在。 #### 五、总结 通过...