sudo命令的环境路径

运行sudo命令时,有时会提示:

1
2
[qisheng.li@yd_app_api_02 ~]$ sudo -u tomcat jstack 123
sudo: jstack: command not found

阅读更多

java中encoding总结

URLConnection 乱码

1
2
3
4
URL realUrl = new URL(""urlNameString"");
URLConnection connection = realUrl.openConnection();
OutputStreamWriter out = new OutputStreamWriter(connection
.getOutputStream(), "UTF-8");

阅读更多

jdwp远程调试与安全

什么是JDWP?

JDWP(Java Debug Wire Protocol)是一个为 Java 调试而设计的一个通讯交互协议,它定义了调试器和被调试程序之间传递的信息的格式。在 JPDA 体系中,作为前端(front-end)的调试者(debugger)进程和后端(back-end)的被调试程序(debuggee)进程之间的交互数据的格式就是由 JDWP 来描述的,它详细完整地定义了请求命令、回应数据和错误代码,保证了前端和后端的 JVMTI 和 JDI 的通信通畅。比如在 Sun 公司提供的实现中,它提供了一个名为 jdwp.dll(jdwp.so)的动态链接库文件,这个动态库文件实现了一个 Agent,它会负责解析前端发出的请求或者命令,并将其转化为 JVMTI 调用,然后将 JVMTI 函数的返回值封装成 JDWP 数据发还给后端。

阅读更多

linux终端对齐问题

输出乱了?

比如vmstat命令, 输出歪歪扭扭的, 强迫症简直不能忍啊, 而且看个指标还得先对齐下.

1
2
3
4
5
6
7
8
➜  ~  vmstat 1 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 4577556 281532 3674532 0 0 64 36 192 784 5 1 93 1 0
0 0 0 4577992 281532 3674552 0 0 0 0 417 1089 1 1 98 0 0
0 0 0 4577960 281540 3674532 0 0 0 44 401 1105 1 0 98 1 0
2 0 0 4577960 281540 3674548 0 0 0 0 307 834 1 0 99 0 0
0 0 0 4577960 281548 3674548 0 0 0 48 318 773 1 0 99 1 0

阅读更多

volatile

结论

volatile的作用:

1.保证多个线程”同时”修改”共享”变量时不会因为cpu cache等原因而造成不一致,

2.另外的作用就是防止指令重排

阅读更多

swappiness

sysctl中和swap相关的参数

1
2
➜  ~  sudo sysctl -a  | grep swap
vm.swappiness = 0

阅读更多

java中的引用

jvm中的Reference Handler线程

经常看jstack的输出就会发现一个常见的线程 – Reference Handler, 堆栈如下:

阅读更多