llin-黎辰

虽然弱,却执着

Java PathFinder(一) Java PathFinder基于Eclipse的安装配置及使用

前言在研究JPF时,发现存在两个版本的JPF,一个是在sourceforge上代码库,自2006后不再更新,但用svn签出;一个是NASA软件工程实验室自建的Mercurial版本库服务器上代码库,现在依然在开发更新,并且提供的完整的在线WIkI文档。我们使用的是NASA的.准备材料: eclip...

2016-05-14 13:13:49

阅读数:5941

评论数:1

Java 设计模式(十三) 接口隔离原则(ISP)

接口隔离原则(Interface Segregation Principle)ISP基本概念接口 实例接口(Object Interface):一个类的实例对象是对一个类型的事物的描述,这时一种接口。 类接口(Class Interface):Java中interface关键定义的接口,也是我们通...

2016-05-11 15:08:07

阅读数:6671

评论数:0

Java 设计模式(十二) 依赖倒置原则(DIP)

依赖倒置原则(Dependence Inversion Principle)依赖倒置原则(DIP)的基本概念原始定义 高层模块不应该依赖低层模块,两者都应该依赖其抽象 抽象不应该依赖细节 细节应该依赖抽象 Java中的具体含义 模块间的依赖通过抽象发生 实现类之间不发生直接的依赖关系 其依赖关系...

2016-05-09 20:03:14

阅读数:3679

评论数:0

Java 设计模式(十一) 里氏替换原则(LSP)

里氏替换原则(Liskov Substitution Principle)LSP的基本概念 定义: 所有引用基类的地方必须能透明地使用其子类的对象 只要父类能出现的地方子类就可出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类(封装造成的多态性) 规范 子类...

2016-05-08 19:30:40

阅读数:2652

评论数:1

Java 设计模式(十) 单一职责原则(SRP)

单一职责原则(Single Responsibility Principle)SRP 基本概念单一职责原则 定义:应该有且仅有一个原因引起类的变更,也就是接口或类和职责的关系是一一对应的。 难点:职责的划分: 在不同情景和生产环境下我们对职责的细化是不同的(职责单一的相对性) 单一职责原则提出的...

2016-05-08 17:55:41

阅读数:3344

评论数:0

Java 设计模式(九) Strategy(策略)模式及Spring引申

Strategy基本概念策略模式(Strategy Pattern): 定义一组算法,将每个算法都封装起来,并且他们之间可以互换。 使用面向对象的继承和多态机制实现 Strategy中的角色: Context封装角色: 它叫做上下文角色,起承上启下的封装作用,屏蔽高层模块对策略、算法的直接访问,...

2016-05-06 14:10:26

阅读数:3815

评论数:0

Java 设计模式(八) Proxy(代理)模式及Spring引申

Proxy基本概念代理模式(Proxy pattern)是一种使用率非常高的模式: 为其他对象提供一种代理以控制对这个对象的访问 代理模式也叫作委托模式,它是一项基本设计技巧 Proxy中的角色 Subject(抽象主题类):既可以是抽象类也可以是抽象的接口 RealSubject(具体的主题角色...

2016-05-06 11:28:19

阅读数:3618

评论数:0

理解Tomcat(一) 利用Digester解析xml文件

Tomcat与Digester的关系我们利用Tomcat做服务器开发Web应用时,总会有一个配置文件web.xml,进行一些对象的实例化或是Servlet的映射的配置,所以要想理解Tomcat的一些配置问题,首先需要了解Tomcat是如何利用xml文件来进行配置的?答案就是利用开源的Digest进...

2016-05-01 09:34:29

阅读数:6080

评论数:4

Java设计模式(七) COR(责任链)模式及Tomcat引申

基本概念 定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,知道有对象处理它为止。 COR(责任链)模式的角色分工: Handler:抽象处理者,定义一个处理请求的接口 Concrete Handler: 具体处理者,处...

2016-04-26 18:57:10

阅读数:7096

评论数:0

Java设计模式(六) Command(命令模式)及Tomcat引申

基本概念Command 命令模式是一个高内聚的模式(满足单一职责原则) 概念:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 命令模式在项目中频繁使用,封装性和拓展性都有很好的保障 Command模式中的角色分工: Cl...

2016-04-26 13:08:35

阅读数:6050

评论数:0

Java设计模式(五) Observer(观察者)模式及Tomcat引申

基本概念Observer 观察者模式(Observer Pattern)又称为发布订阅模式(Publish/subscribe) 定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并且自动更新 根据单一职责原则,每个类的职责是单一的,我们可以通过触发机制,...

2016-04-25 19:38:03

阅读数:6053

评论数:2

Java设计模式(四) Facade(门面)模式及Tomcat引申

基本概念Facade的概念为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。 我们需要以一种比原有方式更简单直接的办法与系统交互,对于讨论的复杂系统我们只有针对性地使用它的一个子集 因为Facade模式可以封装多个子系统,可以减少客户必须处理的对象...

2016-04-25 14:38:28

阅读数:4988

评论数:0

JVM基础(三) JVM内存管理

内存的划分本文所谈的内存是指的运行时数据区域,分为: 共享的数据区: 堆(Heap) 方法区(Method Area) 线程隔离的数据区: 虚拟机栈(VM Stack) 本地方法栈(Native Method Stack) 程序计数器(Program Counter Register) ...

2016-04-24 10:49:44

阅读数:1161

评论数:0

JVM基础(二) 实现自己的ClassLoader

为何要花时间实现自己的ClassLoader虽然人生的乐趣很大一部分来自于将时间花在有意思但是无意义的事情上,但是这件事绝对是有意思并且有意义的,有以下几个情景是值得我们花费时间实现自己的classLoader的: 我们需要的类不一定存放在已经设置好的classPath下(有系统类加载器AppCl...

2016-04-20 16:37:51

阅读数:1993

评论数:0

JVM基础(一) ClassLoader的工作机制

对ClassLoader的理解 顾名思义,Class loader 最基本的功能就是将Class加载到JVM中 在加载过程中,Class loader 能够审查每个类应该由哪个class loader加载,采用双亲委派模型来实现 除了加载外,class loader也负责将加载后的字节码重新解析成...

2016-04-19 22:59:11

阅读数:4866

评论数:0

Java设计模式(三) Visitor(访问者)模式及多分派场景应用

基本概念Visitor 封装一些作用于数据结构中的各元素的操作,不同的操作可以借助新的visitor实现,降低了操作间的耦合性 访问者可以将数据结构和对数据的操作解耦,使得增加对数据结构的操作不需要取修改数据结构,也不必去修改原有的操作,而执行时再定义新的Visitor时闲着就行了(在操作添加上易...

2016-04-14 15:32:41

阅读数:6640

评论数:0

Java设计模式(二) Decorator(装饰)模式及Java I/O引申

基本概念Decorator 职能上: 动态地给一个对象添加一些额外的职责,就增加功能来说 Decorator比从基类生成子类更灵活,而且能有效地控制子类的数量,防止子类爆炸(后面的特性会印证这个优势)。 结构(工作原理)上: 可以创建始于Decorator对象(负责新功能的对象)终于原对象的一...

2016-04-13 19:37:54

阅读数:4363

评论数:0

Java设计模式(一) Adapter(适配器)模式及I/O实例引申

基本概念适配器模式是一种补救模式,将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。是包装模式(对类或者对象进行包装)的一种,分为类适配器和对象适配器,是从实现层面上划分。这个模式中包含三种角色: Target目标角色:该角色定义我们...

2016-04-13 13:59:03

阅读数:2032

评论数:0

Java I/O(一) NIO概述

基本概念 BIO:是阻塞I/O,不管是磁盘I/O,还是网络I/O,数据在写入OutputStream和InputStream都可能发生阻塞,一旦有阻塞,线程会失去CPU的使用权(阻塞)。 NIO:简单的说就是非阻塞式I/O(单个I/O阻塞时不阻塞线程),一个线程可以负责多个I/O连接(利用serv...

2016-04-12 23:01:19

阅读数:2944

评论数:0

Java并发容器(一) CocurrentHashMap的应用及实现

CocurrentHashMap的优势首先常用三种HashMap包括HashMap,HashTable和CocurrentHashMap: HashMap在并发编程过程中使用可能导致死循环,因为插入过程不是原子操作,每个HashEntry是一个链表节点,很可能在插入的过程中,已经设置了后节点,实际...

2016-04-11 21:37:54

阅读数:16321

评论数:8

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