- 博客(13)
- 资源 (1)
- 问答 (3)
- 收藏
- 关注
原创 jvm命令行执行和可视化工具
命令行:jps -l查找jvm进程jmap -dump:format=b,file=d:\dump.bin 15296生成dump 文件(15296为1中找出的进程号)jhat d:\dump.bin分析dump文件执行上面命令,浏览器中http://localhost:7000/jstack:堆栈工具,生成jvm当前时刻的线程快照,定位线程出现长时间停顿...
2019-01-30 15:08:38 4146
原创 jvm启动参数设置OOM异常时,自动生成dump文件
设置如下2个参数即可:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof-XX:+HeapDumpOnOutOfMemoryError 设置当首次遭遇内存溢出时导出此时堆中相关信息-XX:HeapDumpPath=/tmp/heapdump.hprof 指定导出堆信息时的路径或文件名如:ja...
2019-01-30 14:49:43 42222 5
原创 关于第二版《深入理解java虚拟机》中“栈溢出”案例的不同看法
文中说明:使用-Xss参数减少栈内存容量。结果:抛出StackOverflowError异常,异常出现时输出的堆栈深度缩小。定义了大量的本地变量,增大此方法帧中本地变量表的长度。结果:抛出StackOverflowError,异常出现时输出的堆栈深度缩小。 书中代码如下: private int stackLength = 1; public void stackLea...
2019-01-24 15:01:38 3818
原创 jvm之PermGen的离开与MetaSpace新生
测试代码如下: public static void main(String[] args){ // jdk 1.6 设置 -XX:PermSize=10M -XX:MaxPermSize=10M // jdk 1.7 1.8只有设置-Xmx20m -Xms20m -XX:-UseGCOverheadLimit才能起作用(这里的-XX:-UseGCOver...
2019-01-23 17:44:32 4056
原创 String.intern()分析jdk1.6和1.7后变化
先看如下代码输出结果 String str = new StringBuilder("11").append("va").toString(); System.out.println(str.intern() == str); System.out.println("---------------------"); Stri...
2019-01-23 16:02:04 4352
原创 jvm堆、栈数据区域分配
栈线程私有,不共享生命周期与线程相同。每个方法在执行的同时都会创建一个栈帧,用于存放局部变量每个方法从调用到执行完成,都对应一个在虚拟机栈中入栈到出栈的过程内存空间连续,速度快堆所有线程共享所有对象实例以及数组都在堆在分配内存空间不连续,速度慢,但是灵活局部变量和成员变量的分配局部变量引用类型:变量名(即地址)存放在栈,实例存放在堆。地址值在栈,所以随着方法结束,...
2019-01-22 18:12:05 3975
原创 springboot获取上下文context
run 返回上下文对象:ConfigurableApplicationContextimport org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context....
2019-01-17 16:32:06 7786
原创 http请求忽略证书、单向认证、双向认证、连接池范例(httpclient 4.3.x以上版本)
目录:加载证书单向认证忽略证书双向认证连接池加载证书单向认证import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache..........
2019-01-15 20:22:00 8704 1
原创 java.net.ConnectException: Connection timed out
情景:对接银行公网https请求报错,时好时坏。报错connetion timed outjava.net.ConnectException: Connection timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(A...
2019-01-15 19:30:51 40335
原创 https请求过程中,ssl证书的一些问题
1.https请求中,使用jdk的方法X509TrustManager绕过证书,传输数据还是加密的吗?通常在https请求中,会使用jdk中绕过证书,这里绕过证书,并不是绕过https的加密,数据仍然是加密数据。绕过证书的目的是信任对方站点返回的证书,从而使用该证书进行https请求,进行将对称密钥加密,对称密钥来加密报文。如果不信任该证书,则提sun.security.validator.Va...
2019-01-10 16:40:25 8899
原创 @PostConstruct
不要在@PostConstruct注解的方法中写过为复杂的东西,会导致程序启动很慢。特别是while(true)这种,甚至导致程序启动不起来
2019-01-08 16:17:47 4483
原创 ShutdownHook优雅停机
背景通常在我们重启应用服务时候,有些请求还没有执行完毕,此时我们想要等当前请求执行完毕之后,然后再进行停机操作,此时就用到了ShutdownHook 。用法使用ShutdownHook,我们可以向jvm注册一个钩子,这个钩子其实就是一条线程,在应用停机时候,会触发这个线程,此时只要再这个钩子里面写上我们需要的操作即可。注意:这里说的停机,不是强制停止。强制停机(kill -9)是不会触发...
2019-01-08 15:30:12 5682
原创 git同时连接两个地址公司私服和个人git地址
首先生成2个ssh key。打开git命令行,进入 ~/.ssh,执行ssh-keygen -t rsa -C "xxx@163.com"ssh-keygen -t rsa -C "yyy@163.com&am
2019-01-07 11:08:19 5825
RSA的公私钥到底能不能设置有效期?(非证书)
2018-03-06
rabbitTemplate向一个不存在的队列插入值,为什么不抛异常
2018-01-31
String.valueOf 空指针
2017-09-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人