自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DR的专栏

烂笔头的星光

  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 应用线程池ThreadPoolExecutor

在配置和调整应用线程池的时候,首先考虑的是线程池的大小。 线程池的合理大小取决于未来提交的任务类型和所部署系统的特征。定制线程池的时候需要避免线程池的长度“过大”或者“过小”这两种极端情况。 线程池过大:那么线程对稀缺的CPU和内存资源的竞争,会导致内存高使用量,还可能耗尽资源。 线程池过小:由于存在很多可用的处理器资源还未工作,会对吞吐量造成损失。 精密的计算出线程池的确切大小是很困难的,一般我们会估算出一个合理的线程池大小。

2014-08-31 17:41:04 2071

原创 Java Collections Framework

通常我们会用数组去保存一些基本数据类型,数组是编译器支持的类型,但是数组的一个明显缺点就是具有固定尺寸,而在一般情况下,只有在程序运行的时候,我们才能知道要保存的具体数目。 Java类库提供了一套相当完善的容器框架(Collections Framework)来解决这个问题。其中基本的类型是List、Set、Queue和Map。这些对象类型也被称为集合类,但是由于Java中使用了Collection这个名称指代该类库的一个子集,所以一般使用更广泛的术语“容器”来称呼它们。 容器的基本任务是保存对象,更准确的

2014-08-30 18:09:51 966

原创 Executor框架

Java多线程并发下大多围绕着执行任务进行管理的,所谓任务就是抽象的、离散的工作单元。这样将工作分为任务的创建和任务的执行,而且理想状态下任务是独立的活动,它的工作不依赖于其它任务的状态、结果和边界效应。任务的独立有利于并发性,如得到相应的资源,从而可以并行的执行。 任务的执行策略:顺序执行、每任务每线程

2014-08-26 17:20:36 1264

原创 Java并发——Callable和Future

Executor框架将工作单元划分为任务,即任务是逻辑上的工作单元,而线程是任务异步执行的机制。Runnable是任务的一个抽象,并且理想状态下任务是独立的执行,但是Runnable的run( )不能返回一个结果或者抛出一个受检查的异常,这与我们有些实际任务是不相符的。在通过线程或者executor执行Runnable任务中,不仅仅是不能返回任务的执行结果,有时我们希望可以控制某个任务,或取消或终止,但在executor中一旦提交任务,我们将很难单一的控制任务的生命周期,虽然ExecutorService扩

2014-08-26 15:06:27 1925

原创 Timer与ScheduledThreadPoolExecutor

在实际应用中,有时候我们需要创建一些个延迟的、并具有周期性的任务,比如,我们希望当我们的程序启动后每隔1小时就去做一次日志记录。在JDK中提供了两种方法去创建延迟周期性任务。 Timer Timer是java.util包下的一个类,在JDK1.3的时候被引入,Timer只是充当了一个执行者的角色,真正的任务逻辑是通过一个叫做TimerTask的抽象类完成的,TimerTask也是java.util包下面的类,它是一个实现了Runnable接口的抽象类,包含一个抽象方法run( )方法,需要我们自己去提供具体

2014-08-25 22:49:37 2482

原创 策略模式

策略模式(Strategy Pattern)是相对比较简单的一种设计模式,是通过定义一组算法,并且将每个算法封装到具有共同接口的独立类中,从而使它们之间可以相互转换,使算法在不影响客户端的情况下发生变化。 策略模式体现了这样两个原则——封装变化和对接口编程而不是对实现编程。设计模式的作者把策略模式定义如下: Define a family of algorithms, encapsul

2014-08-22 23:25:53 597

原创 先行发生原则(Happens-before)

先行发生原则(Happens-Before)是判断数据是否存在竞争、线程是否安全的主要依据。 先行发生是Java内存,模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,那么操作A产生的影响能够被操作B观察到。 Java内存模型中存在的天然的先行发生关系: 1. 程序次序规则:同一个线程内,按照代码出现的顺序,前面的代码先行于后面的代码,准确的说是控制流顺序,因为

2014-08-21 22:12:11 3569

原创 装饰模式

装饰模式是23种设计模式之一,英文名叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和不使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。通过使用装饰模式,可以在运行时扩充一个类的功能。 原理是:增加一个装饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为装饰类的构造函数的参数。装饰类实现新的功能,但是,

2014-08-19 19:01:51 954

原创 原型模式

原型模式(Proxy Pattern)是创建型模式(Creation)的一种,创建型型模式是对类的实例化过程的抽象化,能够提高对象的创建和管理职责。 原型模式的英文原话是:Specify the kinds of objects to create using a prototypical instance,and create new object by copying this prot

2014-08-18 15:02:01 1165

原创 建造者模式

建造者模式(Builder Pattern)是创建型型模式(Creational Pattern)的一种,与工厂方法、抽象工厂等创建型模式不同,建造者模式需要关注一些创建的细节,它将产品的内部表象和产品的生产过程分割开来,从而使得一个创建的过程可以创建出具有不同表象的产品对象。 建造者模式的英文原话是:Sepatate the construction of a complex object

2014-08-17 15:31:43 785 2

原创 抽象工厂模式

抽象工厂模式是一个比较常用的设计模式,它的英文原话是: Provide an interface for creating families of related or dependent objects without specifying their concrete classes. 意思是:为创建一组相关和相互依赖的对象提供一个接口,而且无须指定它们的具体类。 抽象工厂模式的UML图如下

2014-08-12 00:52:54 714

原创 工厂方法模式

工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而克服了它的缺点。首先,在工厂方法模式中核心工厂类不在负责所有产品的创建,而是将具体创建的工作交给子类去做。这个核心类则称为一个抽象工厂角色,不接触具体产品类实例化的细节。当引入新的产品的时候,就可以在不修改具体工厂角色,这一特点是的工厂方法模式有着超越简单工厂模式的优越性。 工厂方法模式的定义:Define an interface for creating an object, but let subc

2014-08-11 21:07:53 896

原创 简单工厂模式

工厂模式 工厂方法模式又叫虚拟构造函数模式或者多态性工厂模式。工厂方法的用意是定义一个创建产品对象的工厂接口,将实际创见性工作推迟到子类中去。工厂模式可以分为简单工厂、工厂方法和抽象工厂模式。 简单工厂模式 严格说简单工厂模式不在23种GoF设计模式之中,它是由工厂决定创建具体类的实例。一个工厂类处于对产品类实例化的中心位置,它知道每一个产品,决定哪一个产品类应当被实例化。 优点:允许客户端(具体产品类)相对独立于产品实例的创建过程,当引入新的产品的时候,不需要修改现有的产品类。 缺点:由于对象的创建完全由

2014-08-11 02:24:16 664

staruml-5.0-with-cm.exe

staruml-5.0-with-cm.exe 安装 工具

2014-07-19

w3cl在线测试工具

网上的

2013-03-27

空空如也

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

TA关注的人

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