- 浏览: 176052 次
- 性别:
- 来自: 深圳
最新评论
-
yibuyimeng:
尼玛,坑啊,这链接打开是毛线!
JPA与Hibernate相关笔记(江南白衣博物馆) -
MauerSu:
膜拜下
最佳的小路 -
qiuq86:
你好,请教一下,这个自定义标签的话,每次调用需要在类里添加Fr ...
freemarker中实现自定义标签(包含处理参数以及循环变量)(2.3.11版本以后的方式) -
gc715409742:
经典:最人性的,就是最好的.软件产品也一样。
最佳的小路 -
guoyong123:
挺不错,很好
Spring 笔记
文章列表
文章出处,转自:http://blog.csdn.net/cenwenchu79/archive/2009/09/24/4586939.aspx
引问:NIO在服务端的应用已经被广为熟悉,但是在客户端的使用,其实给予的指导并不多。同时在我看来,NIO在客户端使用就是原来的长连接模式加上事件驱动的框架,而相对于短连接池模式来说,性能是否真的在任何环境都那么突出,其实不然。
最近正好要优化TB的Cache客户端,原始代码是用NIO写的,但是效率不高,性能也一般,因此反而拖累了服务端的表现,在整个优化过程中,看了NIO2,也就是JDK7中比较突出的AIO,同时也经过反复优化和测试,其 ...
- 2009-09-27 15:23
- 浏览 1288
- 评论(0)
示例代码如下:
import java.util.*;
import static java.util.concurrent.TimeUnit.SECONDS;
/**
* OutOfTime
* <p/>
* Class illustrating confusing Timer behavior
*
* @author Brian Goetz and Tim Peierls
*/
public class OutOfTime {
public static void main(String[] args) throws ...
- 2009-09-25 16:13
- 浏览 2010
- 评论(0)
代码清单1:
public class StuffIntoPublic {
public Holder holder;
public void initialize() {
holder = new Holder(42);
}
}
代码清单2:
public class Holder {
private int n;
public Holder(int n) {
this.n = n;
}
public void assertSanity() {
...
- 2009-09-23 16:50
- 浏览 1694
- 评论(0)
volatile变量
volatile变量是一种同步的弱形式。它确保对一个变量的更新以可预见的方式告知其他的线程。当一个域声明为volatile类型后,编译器与运行时会监视这个变量:它是共享的,而且对它的操作不会与其他的内存 ...
- 2009-09-23 15:20
- 浏览 1745
- 评论(0)
代码示例:
public class NoVisibility {
private static boolean ready;
private static int number;
private static class ReaderThread extends Thread {
public void run() {
while (!ready)
Thread.yield();
System.out.println(number);
} ...
- 2009-09-23 12:35
- 浏览 987
- 评论(0)
最全的浏览器兼容性参考文章 :
http://roozeno.blogbus.com/logs/3560080.html
http://edu.cooltong.com.cn/html/css/csshack/2009/0608/9756.html
http://blog.csdn.net/herojams/archive/2009/07/01/4311884.aspx
- 2009-09-02 09:34
- 浏览 1672
- 评论(0)
注意,有一点很有意思,当使用“.class”来创建对Class对象的引用时,不会自动地初始化该Class对象。
为了使用类而做的准备工作实际包含三个步骤:
1.加载
。这是由类加载器执行的。该步骤将查找字节码,并从这些字节码中创建一个Class对象。
2.链接
。这个阶段将验证类中的字节码,为静态域分配存储空间,并且如果必需的话,将解析这个类创建的对其他类的所有引用。
3.初始化
。如果该类具有超类,则对其进行初始化,执行静态初始化器和静态初始化块。
初始化被延迟到对静态方法(构造器隐式地是静态的)或者非常数静态域进行首次引用时才执行 ...
- 2009-08-26 10:29
- 浏览 2471
- 评论(8)
正确处理异常
- 博客分类:
- Java Details
通用的清理惯用法基本规则:在创建需要清理的对象之后,立即进入一个try-finally
语句块!
// Each disposable object must be followed by a try-finally
class NeedsCleanupExceptions { // Construction can't fail
private static long counter = 1;
private final ...
- 2009-08-25 16:08
- 浏览 999
- 评论(0)
class VeryImportantException extends Exception {
public String toString() {
return "A very important exception!";
}
}
class HoHumException extends Exception {
public String toString() {
return "A trivial exception";
}
}
public class LostMessage {
v ...
- 2009-08-25 15:27
- 浏览 1275
- 评论(1)
初始化顺序
- 博客分类:
- Java Details
初始化的实际过程:
1.在其他任何事物发生之前,将分配给对象的存储空间初始化成二进制的0。
2.调用基类构造器。(这个步骤会不断反复递归下去,首先是构造这种层次结构的根,然后是下一层子类,等等,直到最低层的子类)
3.按声明顺序调用成员的初始化方法。
4.调用子类的构造器主体。
构造器内部的多态方法的行为
class Glyph {
void draw() { print("Glyph.draw()"); }
Glyph() {
System.out.println("Gly ...
- 2009-08-19 11:14
- 浏览 1024
- 评论(0)
陷阱:域与静态方法
- 博客分类:
- Java Details
只有普通的方法调用可以是多态的。
1.直接访问某个域,这个访问将在编译期进行解析。
示例:
class Super {
public int field = 0;
public int getField() { return field; }
}
class Sub extends Super {
public int field = 1;
public int getField() { return field; }
public int getSuperField() { return super.field; }
} ...
- 2009-08-19 10:56
- 浏览 1052
- 评论(0)
public class PrivateOverride {
private void f() { System.out.println("private f()"); }
public static void main(String[] args) {
PrivateOverride po = new DerivedClass();
po.f();
}
}
class DerivedClass extends PrivateOverride {
public void f() { System.out.println(&q ...
- 2009-08-19 10:46
- 浏览 1151
- 评论(0)
在进行基准测试操作时,一定要对出现意外结果有思想准备。即使您认为自己知道会是什么样的结果,可是奇怪的结果常常会让您无所适从。性能专家 Jack Shirazi 和 Kirk Pepperdine 一直在与意外结果打交道。请跟他们一起对 ...
- 2009-08-18 10:04
- 浏览 1227
- 评论(0)