- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 JDK源码阅读——ReentrantReadWriteLock
最近总结了下ReentrantReadWriteLock的学习,写的比较生硬。 点击阅读
2014-01-15 22:55:54 144
原创 Java字符串搜索思想(String)
今天被问到Java字符串搜索,中午抽空研究了String的源码。 int indexOf(String str) 核心查找代码: for (int i = sourceOffset + fromIndex; i <= max; i++) { /* Look for first character. */ ...
2014-01-03 14:19:23 199
原创 2013个人总结
2013年已经过去了,今天迎来了2014年的第一个工作日,天气很好,希望2014年一帆风顺。 2013年对我来说是重要的转折点,我在这一年里成长的很快(有自身的原因,也有外界的原因)。这一年,工作虽然不是很忙,但是研究自己感兴趣的技术占据了大量的时间(当然还有一部分时间陪家人),过的很充实。 学习 这一年看了很多书:《Java核心技术》基础和高级、《UML精粹》、《深入理...
2014-01-03 00:12:59 143
原创 CentOS 6.4 中文乱码
今天在家里使用centos的时候发现中文乱码,网上各种解决方案都试过了,没有作用。同样的镜像我在单位运行中文是正常的,百思不得其解; 后来忽然灵光一闪,是不是SecureCRT这货引起的? 果断用PUTTY连上去,vi xxx,一切正常,果然是SecureCRT这货有问题,标记一下。 PS: 为什么我要用SecureCRT? 支持标签式窗口,我开7-8个VM,管理起来比...
2013-11-09 00:01:32 305
MMT——微信易信接入
系统架构:主要基于Spring框架,包含IOC、MVC、Security等,数据持久化采用Mybatis 3,UI采用了Bootstrap 3+ Velocity模板。功能介绍:1. 微信易信接入——智能消息回复;2. 消息库管理——多级消息回复;3. 自定义菜单管理——实时同步到微信、易信;4. 集成国内天气查询;5. 数据统计——包含订阅,退订,粉丝,消息等各种数据统计; htt...
2013-10-23 09:31:08 188
原创 Java乱码小技巧
Java乱码的问题,应该是最常见的。我最近一个项目中的一种场景是这样的:99%的数据不会出现乱码,1%的数据会出现乱码(这在Ajax调用时产生),原因是框架硬编码了字符集:iso-8859-1. 其实有很多方法解决掉这个乱码:1. 加个字符过滤器; 2. 修改框架的代码,支持UTF-8 等等. 为了1%的调用加个过滤器,我是无法忍受的。 修改框架代码,这个还...
2013-10-14 00:40:46 191
原创 Mybatis statement-builders文档的坑
前几天把Mybatis升级到3.2.2,发现动态SQL的SqlBuilder/SelectBuilder这几个类应经被弃用,取而代之的是一个叫AbstractSQL的抽象类,打开看源码(什么注释都没有。。。);翻了半天官方文档,发现他有个默认的实现SQL类,新的Mybatis可以通过SQL类来构造动态SQL,详情请见官方文档:http://mybatis.github.io/mybatis...
2013-09-22 11:17:43 163
原创 Velocity的坑——字符串首尾的空格那些事
最近的项目采用Velocity 1.7作为模板引擎,几天用下来,感觉还是挺爽的。不过今天发现一个坑:macro里面如果有多行的话,输出的字符串前后都被加上了换行和空格。直接上代码:#macro(getContextPath) #set($root = $context.webApplicationContext.servletContext.contextPath) ...
2013-09-18 21:16:03 2327
XStream注解方式实现生成的XML带CDATA标签
最近在实现微信公众接口的时候,用到了XStream来实现java Object和XML的相互转换,由于生成的XML需要用到CDATA标签,于是对XPPDriver做了一点扩展,用于支持自定义的注解。 第一步,需要创建自己的标签类XStreamCDATA,用于标记需要加入CDATA标签的field,代码如下:@Retention(RetentionPolicy.RUNTIME)@...
2013-09-03 14:32:23 1226
原创 Java Exception学习
通过对Java Core的学习,对java exception有了新的认识,之前在处理异常的时候,会采用try...catch...finally这种形式:public void connect2() { Socket client = null; PrintWriter out = null; Scanner scanner = null; try { ...
2013-06-21 13:09:52 103
原创 Java CyclicBarrier学习
CyclicBarrier用于处理任务拆分,计算,等待计算全部完成,然后合并计算的场景,Future,CountDownLatch可以实现类似的场景。 package multithread.cycle;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQue...
2013-06-04 17:26:38 98
原创 Java 信号量(Semaphore)学习
信号量(Semaphore)为程序并发运行提供了多个通道,在此标记一下。 package multithread.semaphore;import java.security.SecureRandom;import java.util.concurrent.Semaphore;/** * 模拟超市收银 * * @author lemzhang * ...
2013-06-04 16:02:38 138
原创 Java Exchanger 学习笔记
今天学习了一下Exchanger. 可以让一对线程交换数据,模拟了一个场景,标记一下,方便以后查看。 package multithread.exchanger;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util...
2013-06-04 14:37:20 164
原创 Java之split result array 长度问题
今天遇到一个BUG,给定数据"a,b,c,d,e“,用"a,b,c,d,e“.split(",")函数生成的数组长度是5。但是,如果给定的数组是“a,b,c,d,”,这种格式,情况就不一样了,我之前一直认为"a,b,c,d,“.split(",")的数组长度是5,但是事实上,长度是4。 参考代码片段: String a = "a,b,c,d,";String b...
2013-04-18 22:46:14 421
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人