500多家长期合作企业1000多家企业人才定制培 养基地,定期双选会。
免费试听价值1980元课程,满意再报名。
“理论培训+真实项目实训”养成实战高手
企业定制化培养,学员至少3个真实项目实战,毕业1月就业率达99.2%,远超同行。
怎么学好 | 学什么好 | 咋学快速 |
---|
网络营销 | 以在线咨询为准 | 热招 |
HTML5定制班![]() |
以在线咨询为准 | 热招 |
Python定制班![]() |
以在线咨询为准 | 热招 |
软件测试就业班![]() |
以在线咨询为准 | 热招 |
JAVA就业班![]() |
以在线咨询为准 | 热招 |
UI设计定制班 | 以在线咨询为准 | 热招 |
全移动智能化教学设施
定义"高大上"
让你学习高薪技术专业轻松无忧快乐
这几个JVM命令行标志Java程序员一定要了解?
这几个JVM命令行标志Java程序员一定要了解?
1、HeapDumpOnOutOfMemoryError
并不是任何VM都支持所有命令行标志,Sun/Oracle的VM除外。查明一个标志是否被支持的最好方法是试用它,看它是否正常工作。倘若这些标志在技术上是不支持的,那么,使用它们您要承担全部责任。如果这些标志中的任何一个使您的代码、您的数据、您的服务器或您的一切消失得无影无踪,我、Sun/Oracle和IBM都将不负责任。为以防万一,建议先在虚拟(非常生产)环境中实验。
在这个时刻您想要的是,在JVM消亡之际捕获堆的一个快照--正好-XX:+HeapDumpOnOutOfMemoryError命令可以完成这一操作。
运行该命令通知JVM拍摄一个“堆转储快照”,并将其保存在一个文件中以便处理,通常使用jhat实用工具。您可以使用相应的-XX:HeapDumpPath标志指定到保存文件的实际路径。(不管文件保存在哪,务必确保文件系统和/或Java流程必须要有权限配置,可以在其中写入。)
2、bootclasspath
定期将一个类放入类路径是很有帮助的,这类路径与库存JRE附带的类路径或者以某种方式扩展的JRE类路径略有不同。。如果您想要扩展JRE,那么您定制的实现必须可以使用引导程序ClassLoader,该引导程序可以加载rt.jar中的 java.lang.Object及其所有相关文件。
尽管您可以非法打开rt.jar并将您的定制实现或新数据包移入其中,但从技术上您就违反了您下载JDK时同意的协议了。
相反,使用JVM自己的-Xbootclasspath选项,以及皮肤-Xbootclasspath/p和-Xbootclasspath/a。
-Xbootclasspath使您可以设置完整的引导类路径(这通常包括一个对rt.jar的引用),以及一些其他JDK附带的(不是 rt.jar的一部分)JAR文件。-Xbootclasspath/p将值前置到现有bootclasspath中,并将 -Xbootclasspath/a附加到其中。
例如,如果您修改了库中的java.lang.Integer,并将修改放在一个子路径mods下,那么-Xbootclasspath/amods参数将新Integer放在默认的参数前面。
3、verbose
对于虚拟的或任何类型的Java应用程序,-verbose是一个很有用的一级诊断使用程序。该标志有三个子标志:gc、class和jni。
开发人员尝试寻找是否 JVM 垃圾收集器发生故障或者导致性能低下,通常首先要做的就是执行 gc。不幸的是,解释 gc 输出很麻烦 - 足够写一本书。更糟糕的是,在命令行中打印的输出在不同的 Java 版本中或者不在不同的 JVM 中会发生改变,这使得正确解释变得更难。
一般来说,如果垃圾收集器是一个分代收集器(多数“企业级”VMs都是)。某种虚拟标志将会出现,来指出一个全部清扫GC通路;在Sun JVM中,标志在GC输出行的开始以“[FullGC…]”形式出现。
想要诊断ClassLoader和/或不匹配的类冲突,class可以帮上大忙。它不仅报告类何时加载,还报告类从何处加载,包括到JAR的路径(如果来自JAR)。
jni很少使用,除了使用JNI或本地库时。打开时,它将报告各种JNI事件,比如,本地库何时加载,方法何时弹回;再一次强调,在不同JVM版本中,输出会发生变化。
全国1000多家名企招聘
近500家企业人才定制培养需求
想不就业,太难!
课程免费咨询热线:13783581536