自定义博客皮肤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 1151

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

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

2013-09-06 22:00:43 954

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

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

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

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

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

2013-08-11 17:05:58 301

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

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

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

2013-08-09 16:47:09 270

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

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

2013-08-05 20:12:51 366

原创 InheritableThreadLocal的使用

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

2013-08-05 19:43:04 201

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

原创 java线程异常处理类UncaughtExceptionHandler

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

2013-08-04 14:41:38 264

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

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

2013-07-25 23:12:10 240

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

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

2013-07-24 23:21:55 166

原创 深入掌握JMS系列资料

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

2013-07-08 20:45:35 210

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

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

原创 JMS传输模式DeliveryMode

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

2013-06-13 20:38:53 289

原创 Session.CLIENT_ACKNOWLEDGE

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

2013-06-13 20:03:44 966

原创 Session.AUTO_ACKNOWLEDGE

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

2013-06-13 19:58:36 2680

原创 JMS中的事务Session

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

2013-06-13 16:35:53 547

原创 Arrays.binarySearch()

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

2013-05-26 18:17:22 149

java实现二叉排序树

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

2013-05-19 15:05:36 213

空空如也

空空如也

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

TA关注的人

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