JAVA ’ 目录归档

Java中的策略模式实例教程

原文链接   作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com>

策略模式是一种行为模式。用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略。

策略模式也被称作政策模式。实现过程为,首先定义不同的算法策略,然后客户端把算法策略作为它的一个参数。使用这种模式最好的例子是Collection.sort()方法了,它使用Comparator对象作为参数。根据Comparator接口不同实现,对象会被不同的方法排序。详细介绍请看java中的排序对象

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java中的策略模式实例教程


Java Reflection(十一):动态代理

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)
内容索引
创建代理
InvocationHandler接口

常见用例

利用Java反射机制你可以在运行期动态的创建接口的实现。java.lang.reflect.Proxy类就可以实现这一功能。这个类的名字(译者注:Proxy意思为代理)就是为什么把动态接口实现叫做动态代理。动态的代理的用途十分广泛,比如数据库连接和事物管理(transaction management)还有单元测试时用到的动态mock对象以及AOP中的方法拦截功能等等都使用到了动态代理。
阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java Reflection(十一):动态代理


Java秘术:用枚举构建一个状态机

原文链接   作者:Peter Lawrey    译者:陈振阳

综述

Java中的enum比其他的语言中的都强大,这产生了很多令人惊讶的用法。本文中,我将列出Java中的enum的一些特性,然后将这些特性应用到一起构成一个状态机。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java秘术:用枚举构建一个状态机


Java Reflection(十):数组

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)
内容索引
java.lang.reflect.Array
创建一个数组
访问一个数组
获取数组的Class对象
获取数组的成员类型

利用反射机制来处理数组会有点棘手。尤其是当你想要获得一个数组的Class对象,比如int[]等等。本节会讨论通过反射机制创建数组和如何获取数组的Class对象。

注意:在阅读Eyal Lupu的博客文章“Two Side Notes About Arrays and Reflection”之后对本文的内容做了更新。目前这个版本参考了这篇博文里面的内容。
阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java Reflection(十):数组


Java Reflection(九):泛型

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)

内容索引
运用泛型反射的经验法则
泛型方法返回类型
泛型方法参数类型
泛型变量类型

我常常在一些文章以及论坛中读到说Java泛型信息在编译期被擦除(erased)所以你无法在运行期获得有关泛型的信息。其实这种说法并不完全正确的,在一些情况下是可以在运行期获取到泛型的信息。这些情况其实覆盖了一些我们需要泛型信息的需求。在本节中我们会演示一下这些情况。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java Reflection(九):泛型


Java IO: Buffered和Data

作者:Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com)

本小节会简要概括Java IO中Buffered和data的输入输出流,主要涉及以下4个类型的流:BufferedInputStream,BufferedOutputStream,DataInputStream,DataOutputStream。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java IO: Buffered和Data


Java中的状态模式实例教程

原文链接 作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com>

状态模式是一种行为设计模式。适用于当对象的内在状态改变它自身的行为时。

如果想基于对象的状态来改变自身的行为,通常利用对象的状态变量及if-else条件子句来扮演针对对象的不同行为。状态模式Context(环境)State(状态)分离的方式既保证状态与行为的联动变化,又使得这种变化是条理明晰且松耦合的。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java中的状态模式实例教程


Java Reflection(八):注解

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)

内容索引
什么是注解
类注解
方法注解
参数注解
变量注解

利用Java反射机制可以在运行期获取Java类的注解信息。
阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java Reflection(八):注解


Java IO: ByteArray和Filter

作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

本小节会简要概括Java IO中字节数组与过滤器的输入输出流,主要涉及以下4个类型的流:ByteArrayInputStream,ByteArrayOutputStream,FilterInputStream,FilterOutputStream。请注意,为了清晰,这里忽略了必要的异常处理。想了解更多异常处理的信息,请参考Java IO异常处理。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java IO: ByteArray和Filter


java中的访问者模式 – 例子辅导

原文链接 作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com>

访问者模式是一种行为设计模式。访问者模式被用在针对一组相同类型对象的操作。优点是,可以把针对此对象的操作逻辑转移到另外一个类上。
阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: java中的访问者模式 – 例子辅导


也谈如何构建高性能服务端程序

作者:Coding 架构师 王振威

引子:我接触过很多编程语言,接触过各种各样的服务器端开发,Java,Go,Ruby,Javascript等语言,Spring,Node.js,Rails等等常见服务器端框架和编程模型都有接触。这里谈一下我个人对高性能服务器端程序的一些看法,希望给各位读者一些认识。这片文章提到的内容也是 Coding(https://coding.net) 代码托管乃至整站都在使用的一些概念和技术。

此外,阅读这篇文章,有如下几个前提:不谈硬件,不评论编程语言以及框架的好坏,不谈高级算法,可拍砖,拒绝喷子。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 也谈如何构建高性能服务端程序


JAVA面试700问(一)

原文地址 译者:叶文海(yewenhai@gmail.com)

1、Java环境中的字节码是什么?

  • 由Java 编译器生成的一种代码。
  • 由JVM生成的一种代码。
  • Java源文件(Java Source File)的别名。
  • 一种写在类的实例方法中的代码。

答案:由Java 编译器生成的一种代码。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: JAVA面试700问(一)


完美的单例实现(The Perfect Singleton)

原文链接  作者: Marek Piechut    译者:陈振阳

我经常遇到一些这样的Java程序员,他们不确定应该如何恰当的实现单例模式。

我不考虑在线程的环境中合适的实现。但是使用你能在网络上找到的大多数常见的实现方式,你可以轻松地创建你想要的多种单例实现。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 完美的单例实现(The Perfect Singleton)


Java中的模板模式

原文链接 作者:Pankaj Kumar   译者:f0tlo <1357654289@qq.com>

模板模式是一种行为设计模式,它的实现思路是,创建一个桩方法,并且定义一些步骤让子类来实现。模板方法定义了一个算法的执行步骤,或者说能够提供一种默认的实现,这种实现概括一部分子类或者全部子类的共同部分。

举一个例子帮助理解,假设提供一种造房子的算法。算法的步骤就是模拟造房子的过程:建地基、建支撑,最后添加墙和窗户 – 1. Fundation,2. Pillars,3. Walls,4. Windows。最重要的一点就是不能改变此建造过程,比如不可能在没用地基的时候就开始建造窗户。这个例子中,我们就创建了一个模板方法 – 将使用不同的方法完成对房子的建造。

为了确保子类不能重写(override)这个模板方法,应当使用final

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java中的模板模式


Java IO: PipedInputStream

原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

PipedInputStream可以从管道中读取字节流数据,代码如下:

InputStream input = new PipedInputStream(pipedOutputStream);

int data = input.read();

while(data != -1) {

    //do something with data...

    doSomethingWithData(data);

    data = input.read();

}

input.close();

请注意,为了清晰,这里忽略了必要的异常处理。想了解更多异常处理的信息,请参考Java IO异常处理

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java IO: PipedInputStream


return top