自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (2)
  • 收藏
  • 关注

原创 浅析代理模式

代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。一、代理的种类1、虚拟代理:根据需要创建一个资源消耗较大的对象,使得此对象只在需要时才会被真正创建。2、远程代理:为一

2017-05-18 17:07:45 365

原创 浅析原型模式

原型模式(Prototype)属于对象的创建模式,通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是原型模式的用意。     java语言的构件模型直接支持原型模式。所有的JavaBean都继承自java.lang.Object,而Object类提供一个clone()方法,可以将一个JavaBean对象复制一份。但是,这个JavaBean

2017-05-18 09:02:55 385

原创 Fork/Join框架

Fork/Join框架是Java 1.7提供的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务, 最终汇总每个小任务结果后得到大任务结果的框架。Fork就是把一个大任务切分为若干子任务并行的执行, Join就是合并这些子任务的执行结果, 最后得到这个大任务的结果。Fork/Join框架使用工作窃取算法实现。一、工作窃取算法工作窃取(work-stealing) 算法是指某个线

2017-05-10 21:25:21 267

原创 BlockingQueue

JDK 1.7提供了7个阻塞队列:· ArrayBlockingQueue: 一个由数组结构组成的有界阻塞队列。· LinkedBlockingQueue: 一个由链表结构组成的有界阻塞队列。· PriorityBlockingQueue: 一个支持优先级排序的无界阻塞队列。· DelayQueue: 一个使用优先级队列实现的无界阻塞队列。· SynchronousQueue:

2017-05-10 09:42:21 301

原创 java中的阻塞队列

一、阻塞队列(BlockingQueue) 是一个支持两个附加操作的队列。 这两个附加的操作支持阻塞的插入和移除方法。1、支持阻塞的插入方法: 意思是当队列满时, 队列会阻塞插入元素的线程, 直到队列不满。2、支持阻塞的移除方法: 意思是在队列为空时, 获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景, 生产者是向队列里添加元素的线程, 消费者是从队列里取元素的

2017-05-09 23:41:03 261

原创 如何使用Junit进行单元测试

我们在编写大型程序的时候,常常需要写千上万个方法或函数,这些函数的功能强大,但我们在程序中只用到该函数的一小部分功能,每编写完一个函数之后,我们都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。那么如何确保每一个方法或者函数都完全正确呢?传统的编程方式,进行单元测试是一件很麻烦的事情,你要重新写另外一个程序,在该程序中调用你需要测试的方法,并且仔细观察运行结果,看看是否有错。Jun

2017-05-09 11:21:14 2958

原创 ConcurrentLinkedQueue详解

ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列, 它采用先进先出的规则对节点进行排序, 当我们添加一个元素的时候, 它会添加到队列的尾部; 当我们获取一个元素时, 它会返回队列头部的元素。 它采用了“wait-free”算法(即CAS算法) 来实现, 该算法在Michael&Scott算法上进行了一些修改。

2017-05-08 20:55:33 899

原创 ConcurrentHashMap详解

ConcurrentHashMap是线程安全且高效的HashMap。一、为什么要使用ConcurrentHashMap在并发编程中使用HashMap可能导致程序死循环。而使用线程安全的HashTable效率又非常低下, 基于以上两个原因, 便有了ConcurrentHashMap。1、 HashMap在多线程环境下, 使用HashMap进行put操作会引起死循环, 导致CPU利用率

2017-05-08 11:57:46 308

原创 多线程并发容器

最近学习java并发编程,少不了对java并发容器的学习,今天抽时间总结一下,有不正确之处还望互相学习:一、ConcurrentHashMap与hashMap和hashTable一样,ConcurrentHashMap提供了高并发的线程安全的Map实现,不但实现了的Map的功能,并且实现了接口ConcurrentMap所定义的原子操作。ConcurrentHashMap也是一个基于散列的M

2017-05-07 15:26:54 698

原创 Java实现动态代理

Java动态代理创建对象的过程:1、通过实现InvocationHandler接口创建自己的调用处理器 MyIvocationHandler;2、通过为Proxy类指定ClassLoader对象和一组interface创建动态代理类;3、通过反射机制获取动态代理类的构造函数,其参数类型是调用处理器接口类型;4、通过构造函数创建代理类实例,此时需将调用处理器对象作为参数被传入。为

2017-05-02 10:52:12 337

XJad反编译工具

XJad反编译工具

2017-06-26

反编译工具

反编译工具

2017-06-26

空空如也

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

TA关注的人

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