自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 IllegalThreadStateException 产生原因

 1、对一个线程调用2次以上的start()方法会报错。ChildThread t1 = new ChildThread("thread1");     t1.start(); t1.start(); 2、对于已经启动的线程,调用setDaemon会报错 class ChildThread extends Thread {  @Override  public voi...

2013-11-21 13:46:35 1056

java实现有向图和判断是否存在循环

最新在看xwork的源代码,XmlConfigurationProvider这个类,用来实现解析xwork.xml配置文件。该类使用了有向图这种数据结构,来判断是否存在<include>元素的循环包含。 有向图的实现如下:import java.util.Collections;import java.util.HashMap;import java.util.H...

2013-09-06 22:00:43 825

原创 JSON-LIB 中的null,引发的问题

java中的null对象和"null"字符串,JSonObject会默认对这些数据进行处理。考虑到这样一种场景:发送方和接收方通过json格式数据进行交互 // key = null,这种键值对会直接被json-lib忽略 // key = "null",这种值会被json-lib转换null public static String sendJmsString()...

2013-09-05 20:58:11 968

原创 java支持ORACLE的in不能超过1000

Oracle的in语句,不能超过1000个值,否则会报sql出错。public String splitInCondition(List<String> dataList, String columnName, String type) { String relation = null; if ("in".equalsIgnore...

2013-08-29 20:46:22 258

原创 JDK的ThreadLocal理解(二.2)原理篇

 上一遍博客http://aty.iteye.com/blog/1913734 写道JDK的ThreadLocal理解(一)使用和测试 ,对TheadLocal的测试和使用进行了介绍,这一步将介绍一下ThreadLocal的实现原理。现在附上JDK的ThreadLocal的set方法源码  public void set(T value) { ...

2013-08-11 17:09:22 135

原创 JDK的ThreadLocal理解(三)优雅的使用ThreadLoca

ThreadLocal的使用可以参考struts2的ActionContext,个人觉得这种使用方式是比较优雅的:1、ThreadLocal是业务无关的对象,对于开发代码来说,越少使用越好。     这样能够尽可能的减少技术细节分散开发者对业务逻辑的关注 public class ActionContext implements Serializable { sta...

2013-08-11 17:05:58 232

原创 JDK的ThreadLocal理解(二)jdk源码的心得

  阅读了JDK的Thread、ThreadLocal源代码之后,有几点设计心得: Thread类,有一个ThreadLocal.ThreadLocalMap类型的成员变量  /* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal c...

2013-08-11 16:48:09 141

原创 java并发包(一)Callable接口

刚开始使用java线程的时候,使用都是Thread或Runnable接口。最近发现java并发包下,提供了一个与Runnable接口类似的Callable接口。Callable提供了比Runnable更灵活和宽松的call()。Callable类似于Runnable接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务Callable经常和java线程池...

2013-08-09 16:47:09 194

原创 InheritableThreadLocal使用(二)只在子线程创建的时候,继承一次

package thread.local;public class Test{ // 线程局部变量:初始值默认是null private final static InheritableThreadLocal<String> basicholder = new InheritableThreadLocal<String>(); ...

2013-08-05 20:12:51 278

原创 InheritableThreadLocal的使用

 JDK提供了InheritableThreadLocal类,用来让子线程继承父线程的值。在创建子线程的时候,子线程会接收此刻父线程线程局部变量的初始值。package thread.local;public class Test{ // 线程局部变量:初始值默认是null private final static InheritableThreadLoc...

2013-08-05 19:43:04 125

原创 aop的基础知识

 阅读《Spring 3.x企业应用开发实战》中的aop章节内容: AOP alliance (AOP联盟) :众多开源AOP项目的联合组织,目的是为了制定一套标准规范来描述AOP,定义标准AOP的接口,以方便各种遵守该标准的具体aop实现可以相互调用,也为了方便使用aop的项目能够平滑从一个aop实现迁移到另一个aop实现上。官方网站http://sourceforge.net/p...

2013-08-04 15:55:41 111

原创 java线程异常处理类UncaughtExceptionHandler

     java提了一个线程异常处理类,当线程执行的时候如果出现异常,可以调用该函数,进行一些善后工作,比如释放资源、清理数据等工作。通过这种方式,线程不需要关注因为异常导致资源不能释放等问题。package thread.exception;/* * 1、Thread的run方法是不抛出任何检查型异常(checked exception)的,但是它自身却可能因为一个异常而被终止...

2013-08-04 14:41:38 165

JDK的ThreadLocal理解(一)使用和测试

       ThreadLocal是java中轻量级的线程同步解决方法,为了达到线程安全的目的,采用的是空间隔离的方法。使用方式如下: 1、定义2个会被多线程共享的bean,一个使用ThreadLocal,一个不使用任何线程同步措施package bean;public interface IShareBean { public void get(); ...

2013-07-25 23:12:10 153

JDK动态代理的代码组织与AOP

       最近在看jdk的动态代理和aop的一些概念,发现jdk的动态代理,网上大多写的都很简单,基本都是基于Object类型使用的,导致难以理解, 使用容易出错。按照个人的理解,组织了下jdk动态代理的结构。 util包 :  放置供客户端使用的apiaspect:包放系统中需要的切面实现          经常写JDK动态代理的就可以发现,创建代理对象的过程存在...

2013-07-24 23:21:55 99

原创 深入掌握JMS系列资料

CSDN上的十篇将JMS的博客很好,浅显易懂,适合初学者了解jms。资料地址是:http://blog.csdn.net/iamfafa/article/category/799158

2013-07-08 20:45:35 146

原创 JSON-lib学习(三)循环引用

如果A对象持有B的引用,B对象持有A的引用,这样就形成了循环引用,如果直接使用json-lib转换,会报错:net.sf.json.JSONException: There is a cycle in the hierarchy!import java.util.HashSet;import java.util.Set;public class Aclass{ ...

2013-07-08 20:22:22 163

原创 JSON-lib学习(二)json-lib做json转换的原理

在java对象和json之间做转换的时候,json-lib组件,使用的是对象的getter/setter方法,即调用这些方法,不管这些getter/setter方法有没有对应的属性。因此,在做java对象与json之间的转换时候,除了属性的getter/setter方法,其他方法最好不要以get/set开头。package cycle;public class ComplexData...

2013-07-04 21:38:15 163

原创 JMS传输模式DeliveryMode

    ActiveMQ支持两种消息传送模式:PERSISTENT (持久消息)和 NON_PERSISTENT(非持久消息)1、PERSISTENT 持久消息是activemq默认的传送方式,此方式下的消息在配合activemq.xml中配置的消息存储方式,会被存储在特定的地方,直到有消费者将消息消费或者消息过期进入DLQ队列,消息生命周期才会结束。此模式下可以保证消息只会被成功传送一...

2013-06-13 20:38:53 190

原创 Session.CLIENT_ACKNOWLEDGE

    使用客户端确认模式,必须要创建无事务session    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);         CLIENT_ACKNOWLEDGE:客户端确认模式。会话对象依赖于应用程序对被接收的消息调用一个acknowledge()方法。一旦这个方法被调用,...

2013-06-13 20:03:44 829

原创 Session.AUTO_ACKNOWLEDGE

使用自动确认模式,必须要创建无事务sessionSession session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);   AUTO_ACKNOWLEDGE:自动确认模式,一旦接收方应用程序的消息处理回调函数返回,会话对象就会确认消息的接收。 一般接收方的做法是调用consumer.setMessag...

2013-06-13 19:58:36 2523

原创 JMS中的事务Session

   Session   session = conn.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);    第一个参数代表该session是否支持事务,true 表示这个会话是事务性的,需要显式的commit 或者rollback ().    如果没有显示的提交session.commit(),接收端是不能够收到发送方的消息的。  ...

2013-06-13 16:35:53 428

原创 Arrays.binarySearch()

      最近做1个OJ题目,其中有一步这样的操作:给定一个排序好的数组,随意给定一个数据,寻找数组中第一个大于或等于该值的数据在数组中的索引。如{1,4,5,10}, 给定4,应该返回的索引是1;给定6应该返回的索引是3      刚开始我用的是直接从前到后扫描一遍这种最原始的方法,跑junit用例的时候,发现此处存在性能瓶颈。最后使用了jdk中自带的二分搜索,满足了性能要求。呵呵...

2013-05-26 18:17:22 83

java实现二叉排序树

最近终于静下心来,自己实现了个二叉排序树,还是很有成就感的。 package tree; public class TreeNode<T> { //结点存放的数据public T data; //当前结点的父结点public TreeNode<T> parent; //当前结点的左孩子public TreeNode&l...

2013-05-19 15:05:36 132

空空如也

空空如也

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

TA关注的人

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