摘要: java多线程02 synchronized底层实现及JVM对synchronized的优化 提到java多线程,我们首先想到的就是synchronized关键字,它在我们多线程学习的前期帮助我们解决了绝大多数的问题,但是大多数包括我在内的很多开发人员并不了解它的实现机制,最近看了一些关于synch 阅读全文
posted @ 2018-06-14 19:21 sowhat1943 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 设计模式之原型(Prototype)模式 (一)什么是原型模式 原型模式是一种对象创建模式,它采用复制原型对象的方法来创建对象的实例。使用原型模式创建的对象具有与原型一样的数据。 (二)原型模式的特点 有原型对象自身创建目标对象。对象创建这一动作源自原型对象本身 目标对象是原型对象的一个克隆。保证目 阅读全文
posted @ 2018-06-08 23:01 sowhat1943 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 设计模式之单例设计模式 单例模式的实现目标就是保证一个类有且仅有一个实例,当然这也是有前提的,就是由同一个ClassLoader加载的这个类有且仅有一个对象,如果这里类由不同的ClassLoader加载,则会产生多个对象。 (一) 单线程下的单例设计模式 (1)饿汉式 (2)懒汉式 (二)多线程下的 阅读全文
posted @ 2018-06-08 20:13 sowhat1943 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 设计模式之抽象工厂模式 (一)什么是抽象工厂模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的。抽象工厂模式可以向客户端提供一个接口,是客户端不必指定产品具体类型的情况下,能够创建多个产品族的产品对象。可能说到这,很多人会对这个产品族不是概念模糊,下面我们会介绍到 (二)产品族和产品等级 阅读全文
posted @ 2018-06-08 10:25 sowhat1943 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 设计模式之工厂方法模式 (一)什么是工厂方法模式 工厂方法模式也称为多态工厂模式,也是对象的创建模式。定义了一个创建产品对象的工厂接口或抽象类,将实际创建工作推迟到它的实现类或子类当中。核心工厂类不再负责产品的创建,这样核心类就成为了一个抽象工厂角色,仅仅负责定义具体工厂类必须实现的借口,具体产品的 阅读全文
posted @ 2018-06-07 14:56 sowhat1943 阅读(103) 评论(0) 推荐(0) 编辑
摘要: (一) 什么是简单工厂设计模式 简单工厂模式又称为静态工厂方法模式,是一种的对象的创建模式。通过专门定义一个工厂类来创建其他类的实例,被创建的实例通常都有共同的父类或实现同一接口。 (二) 简单工厂模式中的角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以直接被外界类调用创建所需 阅读全文
posted @ 2018-06-07 13:19 sowhat1943 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 数据结构 堆栈、队列补充 1. 两个队列实现一个栈 基本思想:(总保证一个队列的数据为空) 压栈:永远将数据添加到非空队列。 弹栈:将n-1个元素出队,并添加到另外一个空的队列,然后poll第n个元素。 代码实现 2. 两个栈实现一个队列 基本思想 入队:总是往第一个栈中添加数据 出队:如果第二个栈 阅读全文
posted @ 2018-06-06 16:51 sowhat1943 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 数据结构 队列 1. 基本特点 队列是一种很重要的抽象数据结构,它具有以下两个特点: (1)先进先出(First In First Out,FIFO) (2)使用front和rear两个指针分别指向队头和队尾 2. 代码实现 基于数组的循环队列 基于链表的队列 阅读全文
posted @ 2018-06-04 17:29 sowhat1943 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 数据结构 堆栈 1. 堆栈图解 堆栈是一种相同数据类型的集合,所有的操作都在栈顶进行,具有后进先出(Last In First Out,LIFO)的特点,堆栈在计算机中的应用相当广泛,其基本示意图如下: 2. 堆栈实现 本文通过两种方式实现堆栈数据结构:(1)基于动态数组的堆栈实现;(2)基于链表的 阅读全文
posted @ 2018-06-03 14:02 sowhat1943 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 数据结构之双向链表 双向链表区别于单向链表的地方在于:前后两个节点是双向关联的,即可通过前一个节点的next指针域访问后一个节点,由后一个节点的prev域访问前一个节点,其逻辑结构图如下所示: 在这里,头结点和尾节点均为空节点(其节点中存储的数据为null),可在吗构造方法将数据初始化为null。 阅读全文
posted @ 2018-06-02 11:16 sowhat1943 阅读(116) 评论(0) 推荐(0) 编辑