自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

噬日者

Eclipser : 吞噬sun ...

  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

转载 ReentrantLock

synchronized原语和ReentrantLock在一般情况下没有什么区别,但是在非常复杂的同步应用中,请考虑使用ReentrantLock,特别是遇到下面2种需求的时候。1.某个线程在等待一个锁的控制权的这段时间需要中断 2.需要分开处理一些wait-notify,ReentrantLock里面的Condition应用,能够控制notify哪个线程 3.具有公平锁功能,每个

2012-02-28 13:44:43 17969 2

原创 java.util.concurrent我的理解

在Java类库中出现的第一个关联的集合类是 Hashtable ,它是JDK 1.0的一部分。Hashtable 提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable 的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable 的后继者HashMap 是作为JDK1.2中的集合框架的一部分出

2012-02-28 12:02:22 2988

转载 java.util.concurrent.ConcurrentHashMap

一、简介    ConcurrentHashMap是Map的一种并发实现,在该类中元素的read操作都是无锁了,而write操作需要被同步。这非常适合于读操作远大于写操作的情况。在实现过程中,ConcurrentHashMap将所有元素分成了若干个segment,每个segment是独立的,在一个segment上加锁并不影响其他segment的操作。segment本身是一个hashtable,

2012-02-28 11:48:33 12086 1

转载 java.util.concurrent.LinkedBlockingQueue

一、简介    LinkedBlockingQueue是BlockingQueue的一种使用Link List的实现,它对头和尾(取和添加操作)采用两把不同的锁,相对于ArrayBlockingQueue提高了吞吐量。它也是一种阻塞型的容器,适合于实现“消费者生产者”模式。二、具体实现    LinkedBlockingQueue底层的定义如下:public class Linke

2012-02-28 11:40:22 5136

转载 java.util.concurrent.BlockingQueue ArrayBlockingQueue

一、简介    BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,让容量满时往BlockingQueue中添加数据时会造成阻塞,当容量为空时取元素操作会阻塞。ArrayBlockingQueue是对BlockingQueue的一个数组实现,它使用一把全局的锁并行对queue的读写操作,同时使用两个Condition阻塞容量为空时的

2012-02-28 11:35:09 1486

转载 java.util.concurrent.CopyOnWriteArrayList CopyOnWriteArraySet

CopyOnWriteArrayList 一、简介    JDK5中添加了新的concurrent包,其中包含了很多并发容器,这些容器针对多线程环境进行了优化,大大提高了容器类在并发环境下的执行效率。    CopyOnWriteArrayList类是一个线程安全的List接口的实现,在该类的内部进行元素的写操作时,底层的数组将被完整的复制,这对于读操作远远多于写操作的应用非常适合。在

2012-02-28 11:19:26 5535 1

转载 java获取路径

1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径2、使用File提供的函数获取当前路径:File directory = new File("");//设定为当前文件夹try{    System.out.println(d

2012-02-20 16:29:50 580

原创 再谈Java序列化

package cn.vicky.chapt01;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;/** *

2012-02-20 15:40:35 667

原创 Java核心类库之collections

1. 描述:1.1 概述java.util.Collections类包含很多有用的方法,可以使程序员的工作变得更加容易,但是这些方法通常都没有被充分地利用。Javadoc给出Collections类最完整的描述:“这一个类包含可以操作或返回集合的专用静态类。” 1.2 所含方法Iterator, ArrayList, Elements, Buffer, Map,Collection

2012-02-20 11:39:50 2347

转载 精通JAVA的25个标准

1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是class,object,interaction以 及statediagrams。 什么是OOA/OODObject Oriented Analyzing Object Oriented Design Object Oriented Programmingo

2012-02-20 10:24:43 4347

原创 Java对象以Blob存储,及序列化反序列化 (3)

在完成之前2篇文章内容之后,我们讨论下以下情况。项目要改版,TUser或者User要修改属性,添加或者删除某些字段,那么数据库已保存的数据还能被反序列化为原有对象,并进行扩展么?修改User.javapackage cn.vicky.po.vo;import java.io.Serializable;/** * * @author Vicky.H */p

2012-02-14 11:39:39 3348

原创 Java对象以Blob存储,及序列化反序列化 (2)

在上一节讲述了如何根据JAVA实体类的大小,选择对应的blob格式,现在我们将以一个简单的例子完整的讲述如何将Java对象一Blob格式存储数据库。修改TUser.java  package cn.vicky.po;import cn.vicky.po.vo.User;import java.io.Serializable;import javax.persiste

2012-02-14 11:18:34 4254

原创 Java对象以Blob存储,及序列化反序列化 (1)

序列化,反序列化的概念此处不叙述,我们这里选要讨论的是,如何使用JPA规范实现JAVA对象以Blob个数存储数据库并且,在修改JAVA类的属性后,任然能从数据库中反序列化对象,这也是使用JAVA作为游戏服务器常用的数据存储方式以及要面对的问题。 这里我们将完全以实例放方式讲述:首先,我们需要一个t_user的表,id 以及blob类型的user数据。 MySQL的四种BLOB类

2012-02-14 11:06:36 6281

原创 C getopt 及 shell getopts

C/* * File: getopt.c * Author: Vicky * * Created on 2012年2月3日, 上午10:34 */#include #include #ifdef _WIN32extern int getopt(int, char * const *, const char *);extern char *o

2012-02-03 11:02:18 1677

JPA2.0-Spring2.x-Struts2注解

主要讲述JPA2.0规范,Struct2 Spring注解等技术

2012-02-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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