我们在调试Java内存或者Java线程时,除了使用jmap命令,还可以用JConsole或者VisualVM,这两个工具可以远程调试JVM,但需要开启JMX远程连接。本文是最新最全的配置,已测试。
当前开发PC客户端技术路线还是很多,比如使用windows技术,或electronjs,或最新的tauri,flutter等。JavaFx是使用Java语言开发客户端程序的一个方案。
在日常使用RestTemplate中,我们经常需要调试接口的请求和返回数据是否是正确的,如果是每次请求都去打印请求参数和请求返回,会十分麻烦,且不是最佳实践。更好的方法是使用日志,打印出请求的log。
在/usr/lib/systemd/system/目录下新建启动脚本,后缀是xxx.service, xxx可以是任意名称,输入以下内容
通过Dump分析Java性能问题
任何一个对象都有一个Monitor与之关联,当且一个Monitor被持有后,它将处于锁定状态。Synchronized在JVM里都是基于进入和退出Monitor对象来实现方法同步和代码块同步。
Java 线程有6种状态。在某个给定时间点上,一个线程只能处于这6种状态中的一种。
垃圾回收算法
在生产环境中,我们无法通过断点调试、新增log、可视化工具去立马查看当前的运行状态和拿到错误信息,此时,借助Java自带的命令行工具以及相关dump分析工具以及一些小技巧,可以大大提升我们排查问题的效率。
垃圾回收算法要解决的问题,如何判断java对象已经不再使用