- 博客(8)
- 资源 (9)
- 收藏
- 关注
原创 redis分布式锁
redis分布式锁,基于spring,jedis. 代码链接如下: https://github.com/bjling/javaUtils/blob/release/utils/src/main/java/com/hippo/utils/redis/RedisService.java
2016-08-17 12:41:39 252
原创 JVM学习笔记5-内存分配及回收策略
1.对象优先分配在新生代。 2.大对象直接进入老年代,最典型的大对象就是很长的字符串和数组。 3.长期存活的对象将进入老年代,在新生代里经历过1次GC(Survivor区得存放的下,因为超过Survivor的对象肯定是大对象了)对象年龄就+1,默认到15就进入老年代,老年代的阀值可以通过-XX:MaxTenuringThreshold=n来设置。 4.动态对象年龄判定
2014-12-15 14:06:39 380
原创 JVM学习笔记4-垃圾收集器介绍
1.Serial收集器/Serial Old收集器 Serial 收集器:单线程收集器,当GC时会 stop the world,使用复制算法。 Serial Old收集器:单线程收集器,当GC时会 stop the world,只不过是用在老年代,用的是标记-整理算法。 stop the world:意思是当serial收集器运行时其他处理线程全部停下来等待serial收集器G
2014-11-19 10:27:42 444
原创 JVM学习笔记3-垃圾收集算法
1.标记-清除算法 顾名思义,就是标记待GC的对象,然后清除掉。这算法有2个问题: 效率问题:标记和清除的效率都不高。 空间问题:因为清除之后会有大量的不连续内存,当分配大内存对象时可能没有空间供分配。 2.复制算法 为了解决标记-清除算法的效率问题,复制算法是将内存分为等分的2块内存,1份使用,1份备份,当GC时就将还存活的对象复制到备份的内存,然后统一清除原本使用的另
2014-11-19 10:23:40 417
原创 JVM学习笔记2-对象已死?
1.在GC回收对象时需判定对象是否已死,一般判定对象已死有以下2个方法: 1.1引用计数算法 一个对象实例每被引用一次计数器就+1,引用失效计数器就-1,当计数器为0时就代表此对象实例没有被引用,即可GC。不过JAVA并不适合这种方法,因为解决不了对象相互循环引用的问题。 PS:这里objA引用这objB,objB引用着objA,但这2个对象的引用
2014-11-19 10:19:52 469
原创 JVM学习笔记1-JAVA内存模型概念
1.JAVA运行时数据区域: 1.1程序计数器: 一个比较小的内存区域,每一个线程都有一个独立的计数器(线程私有),用来完成选取下一条所执行的字节码指令等基础功能。 1.2JAVA虚拟机栈 栈也是线程私有的,生命周期与线程相同,每一个方法被执行时就会创建一个栈帧用来存储方法的局部变量表、操作栈、动态链接,方法出口等。一个方法从执行到结束就是一个栈帧从虚拟机栈入栈到出
2014-11-14 16:32:24 538
集群双机环境下的缓存jar
2013-01-15
基于JAVA的集群双机环境下的缓存框架
2013-01-11
MapCache,集群缓存框架
2013-01-11
PLSQL存储过程学习笔记
2011-04-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人