- 博客(9)
- 资源 (12)
- 收藏
- 关注
原创 Tomcat参数详解
<Connector port="8080" protocol="HTTP/1.1" maxPostSize="-1" maxHttpHeaderSize="8192" maxConnections="10000" acceptCount="1000" connectionTimeout="3000"
2018-03-31 23:58:13 1367
原创 Spring AOP原理解析——创建代理
网上有很多分析Spring AOP的源码的文章,但大部分都是从配置文件入手,晦涩难懂。下面我们换一种思路,从AOP的原理及整体架构着手,来看看Spring AOP是如何玩转起来的。 我们都知道,Spring-AOP时基于动态代理来实现的,而实现动态代理主流的有两种方式,一种是JDK动态代理,另一种是Cglib动态代理。下面我们主要以JDK动态代理为例来讲解Spring-AOP是如何实现的...
2018-03-22 09:36:09 822
转载 Redis容量评估
一.Redis常用的数据结构在进行Redis的容量评估之前,有必要了解一下Redis常用的数据结构。1.SDS redis没有直接使用c语言传统的字符串(以空字符为结尾的字符数组),而是自己创建了一种名为SDS(简单动态字符串)的抽象类型,用作redis默认的字符串。//SDS的定义如下(sds.h/sdshdr):struct sdshdr { int le...
2018-03-18 10:51:53 20097 3
原创 如何处理CPU负载过高
方法一第一步:找到占用CPU过高的进程的pid 使用top命令,然后按shift+p按照CPU排序第二步:找到进程中消耗资源最高的线程的id 使用top -H -p [进程id]第三步:将线程id转换为16进制(字母要小写) 使用echo 'obase=16;[线程id]' | bc或者printf "%x\n" [线程id] 【bc是linux的计算器命令】第四步:查看线程状...
2018-03-15 09:49:08 17231 1
原创 JVM如何处理StackOverflowError
如何模拟StackOverflowError,可以参考: http://blog.csdn.net/u011983531/article/details/63250882我们知道,当虚拟机栈容量太小或者栈帧太大时,程序都会抛出StackOverflowError异常,对于StackOverflowError的处理方法,有下面两种:通过try…catch(Throwable ...
2018-03-15 09:22:01 2117
原创 4.Java数据结构原理解析-Set系列
一.Set家族特点 Set 效率 有序性 HashSet 读取快,插入慢 无序 LinkedHashSet 插入快,读取慢 会保存插入的顺序 TreeSet 插入快,读取慢 自定义排序规则二.HashSet实现原理 我们都知道,Set与List的主要区别在于Set中的元素是不允许重复的,正好Map的key是不...
2018-03-09 19:56:35 467
原创 3.JVM垃圾回收机制-如何回收内存
在前面的文章中,我们已经介绍过哪些内存需要回收以及什么时候回收。 哪些内存需要回收:http://blog.csdn.net/u011983531/article/details/49227013 什么时候回收:http://blog.csdn.net/u011983531/article/details/79479972在本篇中,我们来看看具体如何回收已经不可用的内存。一.垃圾回...
2018-03-09 09:41:46 669
原创 2.JVM垃圾回收机制-什么时候回收内存
在前面的文章中,我们介绍过JVM垃圾回收机制负责的是堆和方法区的内存。 参考:http://blog.csdn.net/u011983531/article/details/49227013在本篇中,将重点关注堆和方法区的内存何时会被回收。 简单来说,当一个对象已经死亡时,就会对其进行回收,那么根据什么方法来判断对象是否死亡呢?一.引用计数算法算法描述:给对象添加一个引用计...
2018-03-08 09:42:17 4526 1
原创 volatile的适用场景与使用实例
一.volatile的原理二.适用场景必须满足以下两个条件才能保证volatile变量是线程安全的:对变量的写操作不依赖于当前值该变量没有包含在具有其他变量的不变式中三.使用实例...
2018-03-06 09:36:37 1449 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人