- 博客(48)
- 资源 (6)
- 收藏
- 关注
原创 How to get method parameter names?
如何获取方法参数命名?1.通过javassist获取e()); Class<?>[] paramTypes = method.getParameterTypes(); String[] paramTypeNames = new String[method.getParameterTypes().length]; for (int i = 0; i <
2017-01-05 15:18:55
2091
转载 基于JDK动态代理和CGLIB动态代理到底有什么区别?
转自:基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别摘要结论:基于JDK动态代理 ,可以将@Transactional放置在接口和具体类上。基于CGLIB类代理,只能将@Transactional放置在具体类上。因此 在实际开发时全部将@Transactional放到具体类上,而不是接口上。如何启用cglib动态代理如果设置p
2017-01-03 19:54:40
2805
转载 Spring中通配符
转:Spring中通配符内容摘要一、加载路径中的通配符:?(匹配单个字符)*(配除/外任意字符)**/(匹配任意多个目录)二、Spring AOP配置通配符execution(public * *(..))within(com.xyz.service.*)@annotation(org.springframework.transaction.annotation.Transactional)
2017-01-03 15:28:25
2023
转载 java热加载技术hotswap
关于hotswap 是一个允许在运行状态下无限制的修改加载类文件的Java虚拟机补丁。当前java虚拟机的动态加载机制只允许修改类的方法体,而打了hotswap补丁以后,可以增加,删除类属性,方法,甚至可以改变一个类的父类。Hotswap补丁是基于GPL v2.
2016-04-03 13:19:56
4865
转载 java-memory-model
本文是InfoQ上的《深入理解Java内存模型》 java-memory-model 系列文章汇总列表。同时列举了每篇文章的主要内容:深入理解Java内存模型(一)——基础http://www.infoq.com/cn/articles/java-memory-model-1--内容摘要:重排序从java源代码到最终实际执行的
2016-03-11 15:58:10
1317
转载 Mysql新增UTF8MB4编码支持emoji表情
本文转自:MySQL乱码问题以及utf8mb4字符集乱码推荐大家看深入MySQL字符集设置,区分检查client端、server端的编码;最简单暴力的方式,是在所有的环节都显式明确的指定相同的编码。比如使用python的MySQLdb连接MySQL时默认的charset是latin1,需要自己指定charset=’utf8′,即使是在服务器端的init-connect=’SET NAMES utf8
2015-06-05 14:09:38
3810
原创 利用spring session解决共享Session问题
Spring Session是Spring的项目之一,GitHub地址:https://github.com/spring-projects/spring-session。Spring Session提供了一套创建和管理Servlet HttpSession的方案。Spring Session提供了集群Session(Clustered Sessions)功能,默认采用外置的Redis来存储Session数据,以此来解决Session共享的问题。
2015-05-15 12:27:41
85820
2
原创 ConcurrentLinkedQueue原码解析
ConcurrentLinkedQueue是一个基于单链表的无界线程安全队列,该队列是FIFO的。ConcurrentLinkedQueue/ConcurrentLinkedDeue和LinkedBlockingQueue/LinkedBlockingDeue相比,不同点在于它们不提供阻塞功能,并且是Lock-Free的,而后者则是利用ReentrantLock实现的。
2015-04-14 18:02:39
1360
原创 ConcurrentSkipListMap原码解析
SkipList介绍1. SkipList(跳表),在理论上能够在O(log(n))时间内完成查找、插入、删除操作。SkipList是一种红黑树的替代方案,由于SkipList与红黑树相比无论从理论和实现都简单许多,所以得到了很好的推广。SkipList是基于一种统计学原理实现的,有可能出现最坏情况,即查找和更新操作都是O(n)时间复杂度,但从统计学角度分析这种概率极小。使用SkipL
2015-04-13 17:12:52
1499
原创 ReentrantReadWriteLock原理分析
ReentrantReadWriteLock顾名思义是可重入的读写锁,允许多个读线程获得ReadLock,但只允许一个写线程获得WriteLock。原理介绍1. ReentrantReadWriteLock类图:2. ReentrantRead
2015-04-09 16:13:09
4106
原创 JUC AbstractQueuedSynchronizer原理解析
在J2SE 1.5的java.util.concurrent包(下称j.u.c包)中,大部分的同步器(例如锁,屏障等等)都是基于AbstractQueuedSynchronizer类(下称AQS类),这个简单的框架而构建的。这个框架为同步状态的原子性管理、线程的阻塞和解除阻塞以及排队提供了一种通用的机制。
2015-04-03 17:59:04
1178
转载 自旋锁、排队自旋锁、MCS锁、CLH锁
原文地址:自旋锁、排队自旋锁、MCS锁、CLH锁注:文中的代码忽略了lock和unlock不成对出现的异常情况。另外文中代码可以通过引入ThreadLocal类来去掉lock/unlock方法的参数。自旋锁(Spin lock)自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他线程占用,就一直循环检测锁是否被释放,而不是进入线程挂起或睡眠状态。自
2015-04-01 16:46:29
1026
原创 Spring依赖注入DI
1. Spring是什么?Spring是一个开源框架,是于2003年兴起的一个轻量级Java开发框架。它是为了解决企业应用开发的复杂性而创建的。说它是轻量级的是因为从jar包大小与开销两方面而言Spring都是轻量的。Spring框架目的:解决企业应用开发的复杂性Spring框架应用范围:任何Java应用为什么选择使用Spring?现实往往是这样的:前辈
2015-04-01 14:17:48
1214
转载 HashMap源码分析
转自:HashMap源码分析 需要提到的是,HashMap内部的容量设计为2的幂,是为了方便扩容和取余运算,都只需要采用二进制位运算即可1.扩容:newCapacity 2.取余:当Length=2^n时,hash%Length=hash&(Length-1)学过数论的应该知道,取余运算相对耗时,而把除数设计为2的幂可以简化为按位与运算从而提高程序计算速度。
2015-04-01 11:30:03
864
转载 Java 理论与实践: 处理 InterruptedException
Java 理论与实践: 处理 InterruptedException注:这里仅转了文章开头部分内容,详细内容请查看原网页。这样的情景您也许并不陌生:您在编写一个测试程序,程序需要暂停一段时间,于是调用Thread.sleep()。但是编译器或 IDE 报错说没有处理检查到的InterruptedException。InterruptedException 是什么呢,为什么
2015-03-30 15:53:18
1018
原创 ThreadLocal源码解析
ThreadLocal经常被使用到,但是一直没有研究过它的实现原理。在看源码之前,我猜测它是这样设计的:ThreadLocal中包含一个Map<Thread,Map<ThreadLocal, V>>属性,在使用时,通过Thread.currentThread()获取到当前线程,从而根据Key,找到Map<ThreadLocal, V>,后来发现是错的。所以本文通过阅读JDK1.7源码,来解析ThreadLocal的设计思想和原理。
2015-03-28 19:53:13
1086
原创 sun.misc.Unsafe源代码
转自:源码剖析之sun.misc.Unsafe Unsafe类提供了硬件级别的原子操作,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。Java并发包(java.util.concurrent)中大量使用了CAS操作,涉及到并发的地方都调用了sun.misc.Unsafe类方法进行CAS操作。Unsafe类还提供了volat
2015-03-26 16:35:33
3210
原创 大端小端模式
1.大端小端格式详解为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如果将多个字节安排的问题
2015-03-21 18:42:05
937
原创 ConcurrentHashMap源码分析
ConcurrentHashMap是HashMap更高效的线程安全版本的实现。不同于Hashtable简单的将所有方法标记为synchronized,它将内部数组分成多个Segment,每个Segment又是一个特殊的hash表,这样设计是为了减少锁粒度。另外它内部通过精巧的实现,让很多读操作(get(),size()等)甚至不需要上锁。
2015-03-09 11:33:13
1220
原创 如何用redis实现分布式锁
引子redis作为一个强大的key/value数据库,其实还可以用来实现轻量级的分布式锁。1.实现方案1最早官方在SETNX命令页给了一个实现:acquire lock: SETNX lock.foo release lock: DEL lock.fooacquire lock when time expired: GETSET lock.foo
2014-11-12 15:26:19
1182
原创 Bigpipe学习笔记和java版实现
引用与参考资料1).新浪微博的BigPipe后端实现技术分享2).使用BigPipe提升浏览速度—— 流水线技术在新浪微博的实践3).从新浪微博改版谈网页重构——bigpipe中的页面构建优化4).Facebook创新之BigPipe:优化页面加载时间 http://www.infoq.com/cn/news/2010/08/bigpipe-fa
2014-09-09 23:04:38
2598
转载 JVM锁机制volatile/synchronized/lock
1.深入JVM锁机制1-synchronizedhttp://blog.youkuaiyun.com/chen77716/article/details/66187792.深入JVM锁机制2-Lock
2014-09-09 16:51:30
1875
1
原创 《柔性字符串匹配》读书笔记
介绍:《柔性字符串匹配》Flexible Pattern Matching in Sor是一本不可多得的字符串匹配方面的专业书籍。书中对串匹配问题进行了系统化的分类,从实际效果出发,着重详细介绍了串匹配领域内效果最好的若干种算法。
2014-04-30 15:54:27
2588
原创 Solr AutoSoftCommit
什么是SoftCommit?请戳Solr Guide:Near Real Time Searching(NRT) https://cwiki.apache.org/confluence/display/solr/Near+Real+Time+Searching 。里面讲了AutoCommit和AutoSoftCommit如何进行配置。配置建议:A common configuration
2013-11-04 21:16:48
3027
转载 JSP自定义标签
JSP自定义标签开发入门 http://www.cnblogs.com/zhaoyang/archive/2011/12/25/2301108.htmlJSP自定义标签学习(基础) http://mercyblitz.iteye.com/blog/70106
2013-10-31 14:28:37
655
转载 JSP中静态和动态include的区别
JSP中两种include的区别http://www.cnblogs.com/lazycoding/archive/2011/04/04/two_include.html
2013-10-29 15:02:50
847
转载 Java HashMap多线程下为什么会死循环?
疫苗:Java HashMap的死循环,链接:http://coolshell.cn/articles/9606.html
2013-10-16 16:49:42
1229
原创 Solr IK中文分词器bug--多个IKTokenizer实例使用DefaultConfig单例bug
由于IKTokenizer内部使用DefaultConfig来保存配置信息,而DefaultConfig设计成单例就导致了多个不同的IKTokenizer实例只能拥有唯一的COnfiguration配置。修复方法:把获取单例的地方改为new出来就好了IK版本:IK Analyer 2012-FF Hotfix 1 源码,IK Analyzer 2012FF_hf1_sour
2013-09-26 20:53:46
1305
原创 java如何过滤无效的utf-8字符?
直接上代码了:public static String stripNonCharCodepoints(String input) { StringBuilder retval = new StringBuilder(); char ch; for (int i = 0; i input.length(
2013-09-26 11:15:22
4640
1
原创 Java自动装箱和自动拆箱的陷阱
这里有一段测试代码,猜猜执行结果是什么吧?public static void main(){ Integer a = 1; Integer b = 2; Integer c = 3; Integer d = 3; Integer e = 321; Integer f = 321; Long g = 3L; System.out.println(c == d);
2013-09-18 15:51:59
920
原创 自行实现Solr重复分词过滤器
最近在对搜索质量做优化,想解决一些文章通过重复关键词的堆砌而导致搜索该关键词排序很高的问题。比如搜索“游戏”,结果一篇叫做“游戏游戏游戏游戏游戏游戏游戏游戏”的文章始终排在第一位。体验了一下百度贴吧,从高亮结果显示可以看出贴吧是有对这种堆砌重复关键词的情况做处理的。应该是忽略了连续重复出现的关键词。下图是贴吧搜索(相关度排序)“天天”的结果页面:lucene/solr提供了
2013-09-13 18:07:56
2245
原创 Lucene/solr的评分公式
1. lucene 评分公式(评分公式中,对大多数因子的控制和实现都是通过Similarity抽象类的子类完成的。lucene默认使用DefaultSimilarity类。如果要详细了解的话可以直接看lucene源代码Similarity和DefaultSimilarity类。)Lucene Scoring 评分机制:http://blog.chenlb.com/2
2012-08-24 11:17:43
3254
原创 jni使用--java native 调用c++ boost regex库例子
编写BoostRegexStrategy.javapackage com;public class BoostRegexStrategy { static{ try{ System.loadLibrary("boost_regex"); }catch(UnsatisfiedLinkError e){ //TODO } } public
2012-08-14 21:34:43
1738
原创 Java regex正则表达式类似死循环问题
Java regex正则表达式类似死循环问题,详见:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6988218这个问题其实是由于正则表达式很复杂时,java regex复杂度过高(复杂度成指数级),导致类似死循环的问题。测试代码://public static void main(String[] args) {
2012-07-24 22:41:01
5543
转载 C++11 正则表达式——基础知识介绍
C++11 正则表达式——基础知识介绍:http://www.cnblogs.com/zhuyp1015/archive/2012/04/08/2438191.htmlC++11 正则表达式——实例1http://www.cnblogs.com/zhuyp1015/archive/2012/04/08/2438215.htmlC++11
2012-07-24 21:28:04
693
原创 Linux命令
修改IP地址(1)# vi /etc/sysconfig/network-scripts/ifcfg-eth0 【永久的】(2)# ifconfig eth0 192.168.0.20 netmask 255.255.255.0 【临时的】开关防火墙输入/etc/init.d/iptables status 会得到一系列信息,说明防火墙开着。(1)重启后永久性生效:ch
2012-02-14 16:17:30
559
原创 My solution to:MySQL triggers cannot update the same row that the trigger is assigned to.
My solution to: Error,Can't update table 'XXX' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.Here is a sample table you can create to
2011-11-30 17:30:44
1056
OpenGL程序用的库文件.dll .h .lib文件
2009-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人