自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 1973

转载 基于JDK动态代理和CGLIB动态代理到底有什么区别?

转自:基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别摘要结论:基于JDK动态代理 ,可以将@Transactional放置在接口和具体类上。基于CGLIB类代理,只能将@Transactional放置在具体类上。因此 在实际开发时全部将@Transactional放到具体类上,而不是接口上。如何启用cglib动态代理如果设置p

2017-01-03 19:54:40 2760

转载 Spring中通配符

转:Spring中通配符内容摘要一、加载路径中的通配符:?(匹配单个字符)*(配除/外任意字符)**/(匹配任意多个目录)二、Spring AOP配置通配符execution(public * *(..))within(com.xyz.service.*)@annotation(org.springframework.transaction.annotation.Transactional)

2017-01-03 15:28:25 1946

原创 mybatis一级缓存(session cache)引发的问题

mybatis一级缓存(session cache)引发的问题

2016-05-14 12:06:21 74922 1

转载 java热加载技术hotswap

关于hotswap 是一个允许在运行状态下无限制的修改加载类文件的Java虚拟机补丁。当前java虚拟机的动态加载机制只允许修改类的方法体,而打了hotswap补丁以后,可以增加,删除类属性,方法,甚至可以改变一个类的父类。Hotswap补丁是基于GPL v2.

2016-04-03 13:19:56 4732

转载 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 1267

转载 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 3693

原创 利用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 85434 10

原创 ConcurrentLinkedQueue原码解析

ConcurrentLinkedQueue是一个基于单链表的无界线程安全队列,该队列是FIFO的。ConcurrentLinkedQueue/ConcurrentLinkedDeue和LinkedBlockingQueue/LinkedBlockingDeue相比,不同点在于它们不提供阻塞功能,并且是Lock-Free的,而后者则是利用ReentrantLock实现的。

2015-04-14 18:02:39 1283

原创 ConcurrentSkipListMap原码解析

SkipList介绍1. SkipList(跳表),在理论上能够在O(log(n))时间内完成查找、插入、删除操作。SkipList是一种红黑树的替代方案,由于SkipList与红黑树相比无论从理论和实现都简单许多,所以得到了很好的推广。SkipList是基于一种统计学原理实现的,有可能出现最坏情况,即查找和更新操作都是O(n)时间复杂度,但从统计学角度分析这种概率极小。使用SkipL

2015-04-13 17:12:52 1423

原创 ReentrantReadWriteLock原理分析

ReentrantReadWriteLock顾名思义是可重入的读写锁,允许多个读线程获得ReadLock,但只允许一个写线程获得WriteLock。原理介绍1. ReentrantReadWriteLock类图:2. ReentrantRead

2015-04-09 16:13:09 4051

原创 JUC AbstractQueuedSynchronizer原理解析

在J2SE 1.5的java.util.concurrent包(下称j.u.c包)中,大部分的同步器(例如锁,屏障等等)都是基于AbstractQueuedSynchronizer类(下称AQS类),这个简单的框架而构建的。这个框架为同步状态的原子性管理、线程的阻塞和解除阻塞以及排队提供了一种通用的机制。

2015-04-03 17:59:04 1120

转载 自旋锁、排队自旋锁、MCS锁、CLH锁

原文地址:自旋锁、排队自旋锁、MCS锁、CLH锁注:文中的代码忽略了lock和unlock不成对出现的异常情况。另外文中代码可以通过引入ThreadLocal类来去掉lock/unlock方法的参数。自旋锁(Spin lock)自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他线程占用,就一直循环检测锁是否被释放,而不是进入线程挂起或睡眠状态。自

2015-04-01 16:46:29 966

原创 Spring依赖注入DI

1. Spring是什么?—Spring是一个开源框架,是于2003年兴起的一个轻量级Java开发框架。它是为了解决企业应用开发的复杂性而创建的。—说它是轻量级的是因为从jar包大小与开销两方面而言Spring都是轻量的。Spring框架目的:解决企业应用开发的复杂性Spring框架应用范围:任何Java应用为什么选择使用Spring?现实往往是这样的:前辈

2015-04-01 14:17:48 1162

转载 HashMap源码分析

转自:HashMap源码分析  需要提到的是,HashMap内部的容量设计为2的幂,是为了方便扩容和取余运算,都只需要采用二进制位运算即可1.扩容:newCapacity 2.取余:当Length=2^n时,hash%Length=hash&(Length-1)学过数论的应该知道,取余运算相对耗时,而把除数设计为2的幂可以简化为按位与运算从而提高程序计算速度。

2015-04-01 11:30:03 823

转载 Java 理论与实践: 处理 InterruptedException

Java 理论与实践: 处理 InterruptedException注:这里仅转了文章开头部分内容,详细内容请查看原网页。这样的情景您也许并不陌生:您在编写一个测试程序,程序需要暂停一段时间,于是调用Thread.sleep()。但是编译器或 IDE 报错说没有处理检查到的InterruptedException。InterruptedException 是什么呢,为什么

2015-03-30 15:53:18 959

原创 ThreadLocal源码解析

ThreadLocal经常被使用到,但是一直没有研究过它的实现原理。在看源码之前,我猜测它是这样设计的:ThreadLocal中包含一个Map<Thread,Map<ThreadLocal, V>>属性,在使用时,通过Thread.currentThread()获取到当前线程,从而根据Key,找到Map<ThreadLocal, V>,后来发现是错的。所以本文通过阅读JDK1.7源码,来解析ThreadLocal的设计思想和原理。

2015-03-28 19:53:13 1037

原创 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 3092

原创 大端小端模式

1.大端小端格式详解为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如果将多个字节安排的问题

2015-03-21 18:42:05 863

原创 ConcurrentHashMap源码分析

ConcurrentHashMap是HashMap更高效的线程安全版本的实现。不同于Hashtable简单的将所有方法标记为synchronized,它将内部数组分成多个Segment,每个Segment又是一个特殊的hash表,这样设计是为了减少锁粒度。另外它内部通过精巧的实现,让很多读操作(get(),size()等)甚至不需要上锁。

2015-03-09 11:33:13 1151

转载 Amf3协议

1.AMF协议简介 2.Amf3协议分析与实现

2015-02-14 15:44:23 2692

原创 如何用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 1102

原创 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 2517 1

转载 JVM锁机制volatile/synchronized/lock

1.深入JVM锁机制1-synchronizedhttp://blog.csdn.net/chen77716/article/details/66187792.深入JVM锁机制2-Lock

2014-09-09 16:51:30 1746 1

原创 《柔性字符串匹配》读书笔记

介绍:《柔性字符串匹配》Flexible Pattern Matching in Sor是一本不可多得的字符串匹配方面的专业书籍。书中对串匹配问题进行了系统化的分类,从实际效果出发,着重详细介绍了串匹配领域内效果最好的若干种算法。

2014-04-30 15:54:27 2452

原创 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 2952

转载 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 609

转载 JSP中静态和动态include的区别

JSP中两种include的区别http://www.cnblogs.com/lazycoding/archive/2011/04/04/two_include.html

2013-10-29 15:02:50 795

转载 简明 Vim 练级攻略

简明 Vim 练级攻略 http://coolshell.cn/articles/5426.html

2013-10-21 15:07:10 513

转载 Java HashMap多线程下为什么会死循环?

疫苗:Java HashMap的死循环,链接:http://coolshell.cn/articles/9606.html

2013-10-16 16:49:42 1186

原创 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 1254

原创 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 4443 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 870

原创 自行实现Solr重复分词过滤器

最近在对搜索质量做优化,想解决一些文章通过重复关键词的堆砌而导致搜索该关键词排序很高的问题。比如搜索“游戏”,结果一篇叫做“游戏游戏游戏游戏游戏游戏游戏游戏”的文章始终排在第一位。体验了一下百度贴吧,从高亮结果显示可以看出贴吧是有对这种堆砌重复关键词的情况做处理的。应该是忽略了连续重复出现的关键词。下图是贴吧搜索(相关度排序)“天天”的结果页面:lucene/solr提供了

2013-09-13 18:07:56 2178

原创 Lucene/solr的评分公式

1. lucene 评分公式(评分公式中,对大多数因子的控制和实现都是通过Similarity抽象类的子类完成的。lucene默认使用DefaultSimilarity类。如果要详细了解的话可以直接看lucene源代码Similarity和DefaultSimilarity类。)Lucene Scoring 评分机制:http://blog.chenlb.com/2

2012-08-24 11:17:43 3192

原创 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 1644

原创 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 5411

转载 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 643

原创 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 500

原创 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 972

物理方法模拟的烟雾流体(3D)

Jos Stam, Real-Time Fluid Dynamics for Games流体例程修改成了3D的,基于半拉格朗日法

2009-12-19

OpenGL程序用的库文件.dll .h .lib文件

有具体的help说明,并有vs2005/vs2008/vs2010添加.lib文件的方法以及vc2005出错解决方法error LNK2019: unresolved external symbol __imp____glutInitWithExit@12 referenced in function _glutInit_ATEXIT_HACK@8

2009-12-15

RSATool.zip_723

RSATool.zip_723 RSA工具

2009-12-15

FFT ACM 1402 A B Problem Plus

FFT 大整数快速乘法 傅里叶快速乘法 c++代码

2009-12-15

C++ 程序图形界面计算器(波兰表达式)

这是一个C++(windows forms)编写的表达式计算器,具有图形化界面,采用正常的波兰表达式输入

2009-10-25

MFC五角星绘制例程

本例程内容是用MFC绘制五角星,程序使用visual2008编译,如果用其他编译器的话可以查看textView.cpp下代码即可

2009-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除