Java启动参数

在java文件的启动项增加以下参数,可以生成dump文件

  • -XX:+HeapDumpOnOutOfMemoryError

生成堆文件

在项目的根目录下,会生成名为java_pid6116.hprof一类的文件,文件大小等同于当前计算机的大小;
文件记录了当前堆中保存的程序运行快照。

分析堆文件


Java远程调试

在启动时增加以下启动命令即可(JAVA 5.0及之后版本)

  • java agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
    exp:
  • java agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar SpringBootApplication.jar

参数详解:

  • -Xdebug:JVM在DEBUG模式下工作
  • -Xrunjdwp:JVM使用(java debug wire protocol)来运行调试环境
  • transport:监听Socket端口连接方式,常用的dt_socket表示使用socket连接
  • server:=y表示当前是调试服务端,=n表示当前是调试客户端
  • suspend:=n表示启动时不中断
  • address:=8000表示本地监听5555端口

然后在IDEA里新建remote,添加同样的参数,进入源代码后即可进行调试


jdk1.7

try-with-resources

try-with-resources语句是一个try语句,用于声明一个或多个资源。 资源是程序完成后必须关闭的对象。 try-with-resources语句可确保在语句末尾关闭每个资源。 任何实现java.lang.AutoCloseable的对象(包括所有实现java.io.Closeable的对象)都可以用作资源。
简单来讲就是之前用finally关闭的资源,现在可以用try-with-resources的方式让程序自动执行关闭操作