java调试技巧

1 System.out.println() System.err.println() Logger.getGlobal().info()直接调试

2 每个类写一个main,单元测试

3 JUnit

4 日志代理

5 throwable的printStackTrace

6 堆栈跟踪显示在System.err上,new Throwable().printStackTrace(PrintWrite)捕获

7 命令行java Test> errors.txt

8 让非捕获异常的堆栈跟踪出现在System.err中并不是一个很理想的方法。如果在客户端偶然看到这个消息,则会感到迷惑,并且在需要的时候也无法实现诊断目的。比较好的方式是将这些内容记录到一个文件中,如静态的Thread.setDefaultUncaughtExceptionHandler

9 想要观察类的加载过程,可以用-verbose标识启动java虚拟机 有助于诊断由类路径引发的问题

10 Xlint选项告诉编译器对一些普遍容易出现的代码问题进行检查 javac -Xlint:fallthrough

11 java虚拟机增加了对java应用程序进行监控和管理的支持,它允许利用虚拟机中的代理装置跟踪内存消耗、线程使用、类加载等情况。对于像应用程序服务器这样大型的、长时间运行的java程序来说特别重要。如jconsole可以用于显示虚拟机性能的统计结果

12 jmap获得一个堆的转储

      jmap -dump:format=b,file=dumpFileName processID

      jhat dumpFileName

跟着在localhost:7000可以浏览相关内容

13 -Xprof运行虚拟机,它会运行一个基本的剖析器来跟着那些代码中经常被调用的方法。剖析信息发给System.out,还会显示那些方法是由即时编译器编译的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值