“JDK1.5/Java5”的一个重要主题就是通过新增一些特性来简化开发。这些特性包括泛型,for-each循环,自动装包/拆包,枚举,可变参数,静态导入,注解。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。1.泛型(Generic)C++通过模板技术可以指定集合的元素类型,而Java在1..
分类:
编程语言 时间:
2015-02-14 20:18:14
阅读次数:
273
开始搞netty了查了下资料在使用NIO的时候,最好不要配置SO_LINGER,假设设置了该參数,在close的时候如缓冲区有数据待写出,会抛出IOException。
分类:
编程语言 时间:
2015-02-11 10:50:54
阅读次数:
240
从Java5开始,Java提供了自己的线程池。每次只执行指定数量的线程,java.util.concurrent.ThreadPoolExecutor 就是这样的线程池。以下是我的学习过程。 首先是构造函数签名如下: [java] view plain copy print ?...
分类:
编程语言 时间:
2015-02-09 20:22:20
阅读次数:
134
在Java5.0之前,只有synchronized(内置锁)和volatile. Java5.0后引入了显示锁ReentrantLock.ReentrantLock概况ReentrantLock是可重入的锁,它不同于内置锁, 它在每次使用都需要显示的加锁和解锁, 而且提供了更高级的特性:公平锁, 定...
分类:
编程语言 时间:
2015-02-08 12:48:17
阅读次数:
171
一、概念 Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。更通俗的意思是为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序.....
分类:
编程语言 时间:
2015-02-07 22:55:19
阅读次数:
243
原始文章 在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写。或者干脆绕过这道坎,走别的路了。 现在Java终于有可返回值的任务(也可以叫做线程)了。 可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。 执行Callabl...
分类:
编程语言 时间:
2015-01-28 17:41:54
阅读次数:
192
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。
先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和publ...
分类:
其他好文 时间:
2015-01-26 17:10:07
阅读次数:
157
Lucene是一种功能强大且被广泛使用的搜索引擎,以下列出8种基于Lucene的搜索引擎,你可以想象他们有多么强大...Apache SolrSolr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个...
分类:
其他好文 时间:
2015-01-22 10:48:37
阅读次数:
318
本文可作为传智播客《张孝祥-Java多线程与并发库高级应用》的学习笔记。
一个简单的例子
两个线程,一个不断打印a,一个不断打印b
public class LockTest {
public static void main(String[] args){
final Outputer outputer = new Outputer();
n...
分类:
编程语言 时间:
2015-01-20 18:09:25
阅读次数:
157
本文可作为传智播客《张孝祥-Java多线程与并发库高级应用》视频的学习记录。
为什么需要并发池
之前写并发的时候
new Thread(new Runnable(){
public void run{
//....
}
}).start();没有什么问题呀,为什么需要并发池呢?
我们拿tomcat来举个例子。每次我们对服务器做一个请求,tomcat就得分出一个线...
分类:
编程语言 时间:
2015-01-19 19:09:52
阅读次数:
260