自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

转载 java多线程 之 ConcurrentHashMap

实现原理  锁分离 (Lock Stripping) ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,它们有自己的锁。只要多个修改操作发生在不

2014-09-24 10:40:41 414

转载 缓存概述

缓存概述 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持;一级缓存基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存

2014-09-23 13:10:08 613

转载 java 引用

Reference 是一个抽象类,而 SoftReference,WeakReference,PhantomReference 以及 FinalReference 都是继承它的具体类。接下来我们来分别介绍和分析强引用以及 java.lang.ref 包下各种虚引用的特性及用法。StrongReference, SoftReference, WeakReference 以及 Phanto

2014-09-22 10:04:03 288

转载 SklipList跳表

为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。 用跳表吧,跳表是一种随机化的数据结构,目前

2014-09-18 18:24:33 514

原创 JAVA多线程 之 CopyOnWriteArrayList和CopyOnWriteArraySet

当多线程高并发的情况下,传统的ArrayList

2014-09-18 15:23:11 368

转载 java多线程 之 AQS

Java中的FutureTask作为可异步执行任务并可获取执行结果而被大家所熟知,通常可以使用future.get()来获取线程的执行结果,在线程执行结束之前,get方法会一直阻塞状态,直到call()返回,其优点是使用线程异步执行任务的情况下还可以获取到线程的执行结果,但是FutureTask的以上功能却是依靠通过一个叫AbstractQueuedSynchronizer的类来实现,至少在JDK

2014-09-12 10:29:58 543

转载 Java多线程 之Deque与LinkedBlockingDeque深入分析

一、双向队列DequeQueue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是LinkedList也已经加入了Deque的一部分(LinkedList是从jdk1.2 开始就存在数据结构)。 Deque在Q

2014-09-10 17:17:23 2141

转载 java多线程 之BlockingQueue分析

前言:     在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个

2014-09-10 09:42:14 473

转载 Future接口

本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。        Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值,下面来看一个简

2014-09-09 18:51:24 360

转载 Java集合类的类图

Java集合类的类图

2014-09-05 09:58:02 599

原创 闭锁CountDownLatch和栅栏CyclicBarrier

闭锁:一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。即,一组线程等待某一事件发生,事件没有发生前,所有线程将阻塞等待;而事件发生后,所有线程将开始执行;闭锁最初处于封闭状态,当事件发生后闭锁将被打开,一旦打开,闭锁将永远处于打开状态。    闭锁CountDownLatch唯一的构造方法CountDownLatch(int count),当在闭锁上调

2014-09-05 08:41:02 491

转载 命令模式

意图:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作动机:将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来。效果:1)、command模式将调用操作的对象和实现该操作的对象解耦2)、可以将多个命令装配成一个复合命令,复合命令是Composite模式的一个实例3)、增加新的command很容易,无需改变已有的类

2014-09-04 15:22:41 329

转载 策略模式Strategy Pattern

策略模式Strategy Pattern  在Java的集合框架中,经常需要通过构造方法传入一个比较器Comparator,或者创建比较器传入Collections的静态方法中作为方法参数,进行比较排序等,使用的是策略模式。 策略模式的定义  定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。  策略模式使这些算法在客户端调用它们的时候能够互不影响

2014-09-04 15:00:58 327

转载 Collections.EMPTY_LIST和Collections.emptyList()使用

1.背景在某些情况下,我们经常需要发挥一个空的集合对象,比如说在数据查询时,并不需要发挥一个NULL或是异常,那么就可以返回一个空的集合对象。JDK提供了两个方式来返回集合对象,那么两者有何区别呢?那就看代码吧!2.源码解析 Java代码   //EMPTY_LIST 是Collections定义的一个静态属性,是一个类变量,可以直接返回使用  

2014-09-04 14:19:11 1153

转载 Statement 和 PreparedStatement CallableStatement及hibernate中的session

DBC驱动的最佳化是基于使用的是什么功能. 选择PreparedStatement还是Statement取决于你要怎么使用它们. 对于只执行一次的SQL语句选择Statement是最好的. 相反, 如果SQL语句被多次执行选用PreparedStatement是最好的.对于PreparedStatement加?再set否则和statement一样,就没有效果。数据库在执行sql语句的时候如果使

2014-09-03 19:13:49 2494

转载 文件的上传

文件上传概述实现web开发中的文件上传功能,需完成如下二步操作:在web页面中添加上传输入项在servlet中读取上传文件的数据,并保存到本地硬盘中。如何在web页面中添加上传输入项?标签用于在web页面中添加文件上传输入项,设置文件上传输入项时须注意:1、必须要设置input输入项的name属性,否则浏览器将不会发送上传文件的数据。2、必须把form的enctyp

2014-09-02 19:13:45 350

原创 类中方加载顺序

public class Test09 {public void test(){new Test09_02("abc") ;}public static void main(String[] args) {// TODO Auto-generated method stubTest09 _t = new Test09() ;_t.test();}

2014-09-02 10:46:18 384

原创 i++与++i

int tmp = 1 ;System.out.println(tmp++) ;  dengjiayu

2014-09-02 10:07:20 327

转载 LinkedHashMap讲解

1. LinkedHashMap概述:LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。   LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

2014-09-01 19:35:30 974

转载 事务隔离级别

脏读、不能重复读、虚读(又叫幻读)脏读:如果一个事务对数据进行了更新,但事务还没有提交,另一个事务就可以“看到”该事务没有提交的更新结果。这样造成的问题是,如果第一个事务回滚,那么第二个事务在此之前所“看到”的数据就是一笔脏数据。不可重复读:指同个事务在整个事务过程中对同一笔数据进行读取,每次读取结果都不同。如果事务1在事务2的更新操作之前读取一次数据,在事务2的更新操作之后再读取

2014-09-01 09:56:29 387

javamail_1.4.2

Java邮箱开发架包 运用该架包可以方便的实现邮件的发送和接受

2009-09-27

空空如也

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

TA关注的人

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