Jstat 常用命令

常用命令

  1. jstat -gc pid
  2. jstat -gccapacity pid
  3. jstat -gcutil pid
  4. jstat -gcnew pid
  5. jstat -gcnewcapacity pid
  6. jstat -gcold pid
  7. jstat -gcoldcapacity pid
  8. jstat -gcpermcapacity pid
  9. jstat -class pid
  10. jstat -compiler pid
  11. jstat -printcompilation pid
阅读更多

@Autowired绑定静态变量

今天在使用WebSocket的时候,遇到了一个需要Autowire静态变量的场景,即SimpMessagingTemplate 这个Bean 需要在一些静态方法中调用。方法有两种:

阅读更多

性能诊断零星知识点

  1. 火焰图既是一个开源工具,也是一种类型的图片。作为一个二维图片,火焰图的X轴代表采样总量,而Y轴代表栈深度。每个框就代表了一个栈里的函数,其宽度代表了所占用的CPU总时间。因此,比较宽的框就表示该函数运行时间较慢或被调用次数较多,从而占用的CPU时间多。通过火焰图,相关设计或分析人员就可以轻松观察到各个应用占用CPU的情况。

    参考:CPU Flame Graphs

阅读更多

在Jar包含相对路径的依赖

问题描述

今天在打jar包的时候遇到了一点问题:我要把一个attach jvm功能的jar包打成一个可执行文件,该jar包依赖了jdk中的tools.jar

打包时我用了maven-shade-plugin插件,但是在运行(java -jar xxx.jar)时,却出现了如下异常: java.lang.ClassNotFoundException:com.sun.tools.attach.AttachNotSupportedException

阅读更多

Spring中几组容易混淆的注解

@Resource VS @Autowired

  1. @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
  2. @Autowired默认按类型装配(这个注解是属于Spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用。
  3. @Resource(这个注解属于J2EE的),默认安装名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
阅读更多

快速定位JDK安装位置

快速定位JDK的位置,Linux下可执行命令:
Linux下:

$(dirname $(dirname $(readlink -f $(which javac))))

Mac下:

$(dirname $(readlink $(which javac)))/java_home

阅读更多

生日若干感悟

《垃圾回收的算法与实现》读书笔记

序章

  1. GC 把程序不用的内存空间视为垃圾, 是管理堆中已分配对象的机制, GC 要做的有两件事

    • 找到内存空间里的垃圾
    • 回收垃圾,让程序员能再次利用这部分空间
  2. 分配到内存空间中的对象中那些能通过mutator 引用的对象称为“活动对象”。反过来,把分配到堆中那些不能通过程序引用的对象称为“非活动对象”。也就是说,不能通过程序引用的对象已经没有人搭理了,所以死掉了。死掉的对象(即非活动对象)我们就称为“垃圾”。

阅读更多

《程序员密码学》读书笔记

  1. DES被攻破的方法:差分密码分析,而AES可以抵抗这种攻击~
  2. 分组密码等同于伪随机置换(PRP ):伪随机置换就是由算法创建的一种对符号的重新排列,一个安全的PRP目标是:对于仅知道部分置换是不足以以一个有效的概率来确定置换的其他部分。
  3. 散列函数等同于伪随机函数(PRF):可以用来生成IV,key或者nonce 
  4. 从信息论的角度来看,AES加密时没有固定的时间,这回泄露内部状态的信息熵
阅读更多

:D 一言句子获取中...