Java Reflection(九):泛型

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

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

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

阅读全文

Java IO: Buffered和Data

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

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

阅读全文

Java中的状态模式实例教程

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

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

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

阅读全文

Java Reflection(八):注解

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

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

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

Java IO: ByteArray和Filter

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

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

阅读全文

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

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

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

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

作者:Coding 架构师 王振威

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

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

阅读全文

JAVA面试700问(一)

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

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

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

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

阅读全文

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

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

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

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

阅读全文

Java中的模板模式

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

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

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

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

阅读全文

Java IO: PipedInputStream

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

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

[code lang=”java”]
InputStream input = new PipedInputStream(pipedOutputStream);

int data = input.read();

while(data != -1) {

//do something with data…

doSomethingWithData(data);

data = input.read();

}

input.close();
[/code]

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

阅读全文

Java IO: PipedOutputStream

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

PipedOutputStream可以往管道里写入读取字节流数据,代码如下:

[code lang=”java”]
OutputStream output = new PipedOutputStream(pipedInputStream);

while(moreData) {

int data = getMoreData();

output.write(data);

}

output.close();
[/code]

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

PipedOutputStream的write()方法取一个包含了待写入字节的int类型变量作为参数进行写入。

Java IO管道

一个PipedOutputStream总是需要与一个PipedInputStream相关联。当这两种流联系起来时,它们就形成了一条管道。要想更多地了解Java IO中的管道,请参考Java IO管道

Akka笔记之请求与响应

英文原文链接译文链接,原文作者:Arun Manivannan ,译者:有孚

前面我们讲到了Actor的消息传递,并看到了如何发送一条fire-n-forget消息(也就是说,消息发送给Actor后我们就不管了,不从Actor那接收响应)。

阅读全文

Java Reflection(七):私有变量和私有方法

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)
内容索引
访问私有变量
访问私有方法

在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是Java反射机制可以做到这一点。使用这个功能并不困难,在进行单元测试时这个功能非常有效。本节会向你展示如何使用这个功能。

注意:这个功能只有在代码运行在单机Java应用(standalone Java application)中才会有效,就像你做单元测试或者一些常规的应用程序一样。如果你在Java Applet中使用这个功能,那么你就要想办法去应付SecurityManager对你限制了。但是一般情况下我们是不会这么做的,所以在本节里面我们不会探讨这个问题。

阅读全文

Java IO: File

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

Java IO API中的FIle类可以让你访问底层文件系统,通过File类,你可以做到以下几点:

  • 检测文件是否存在
  • 读取文件长度
  • 重命名或移动文件
  • 删除文件
  • 检测某个路径是文件还是目录
  • 读取目录中的文件列表

请注意:File只能访问文件以及文件系统的元数据。如果你想读写文件内容,需要使用FileInputStream、FileOutputStream或者RandomAccessFile。如果你正在使用Java NIO,并且想使用完整的NIO解决方案,你会使用到java.nio.FileChannel(否则你也可以使用File)。

阅读全文

return top