11 zhouhl_cn

尚未进行身份认证

暂无相关简介

等级
TA的排名 6w+

串口短信猫与USB短信猫

这几天俺犯了回晕,让俺既白花了钱又白花了时间。前段时间由于个人需要,俺决定写个短信群发的程序,于是在淘宝了买了个短信猫。淘宝上一搜,发现短信猫接口有串口和USB两种的。网上看了下专业人士的比较,说是串口虽然没USB的方便,但是更稳定,而且俺依稀记得俺笔记本有是有一个串口的,于是拍了一个串口的。接下来两天俺就把串口程序写好了,货到了俺赶紧想笔记本上想试一个程序。结果悲催地发现俺电脑上的那个不9针

2012-08-27 10:26:41

XSLT与代码生成

Java开发由于分层,比较繁琐一些,一处小的需求变更,可能就涉及Database, JavaBean, DAO, Service等多处改动。为了减少工作量,使用代码生成是个比较高效的方式。XSLT是一种非常方便有效的代码生成技术。   由于Database Schema, JavaBean, DAO三者之间相互关联,且所占的工作量比较大,完全可以先定义出数据模型,然

2012-05-03 13:42:52

线程池ThreadPoolExecutor参数设置

JDK1.5中引入了强大的concurrent包,其中最常用的莫过了线程池的实现ThreadPoolExecutor,它给我们带来了极大的方便,但同时,对于该线程池不恰当的设置也可能使其效率并不能达到预期的效果,甚至仅相当于或低于单线程的效率。ThreadPoolExecutor类可设置的参数主要有:corePoolSize核心线程数,核心线程会一直存活,即使没有任务需

2012-03-25 21:48:05

NIO就绪处理之OP_WRITE

写就绪相对有一点特殊,一般来说,你不应该注册写事件。写操作的就绪条件为底层缓冲区有空闲空间,而写缓冲区绝大部分时间都是有空闲空间的,所以当你注册写事件后,写操作一直是就绪的,选择处理线程全占用整个CPU资源。所以,只有当你确实在写时再注册写操作,并在写完以后马

2011-07-03 23:02:08

NIO就绪处理之OP_ACCEPT

OP_ACCEPT的处理与OP_CONNECT基本一样,服务端监听,并注册OP_ACCEPT事件后,就已准备好接受客户端的连接了ServerSocketChannel ssc = ServerSocketChannel.open();ssc.configur

2011-07-03 22:41:34

NIO就绪处理之OP_CONNECT

连接就绪是所有就绪选择中最简单的,对它的处理也很简单。当客户端调用connect()并注册OP_CONNECT事件后,连接操作就会就绪。SocketChannel channel = SocketChannel.open();channel.configureBlocking(false);channel.connect(addr);channel.register(selector, Se

2011-07-03 22:26:20

DirectBuffer及内存泄漏

创建Buffer对象时,可以选择从JVM堆中分配内存,也可以OS本地内存中分配,由于本地缓冲区避免了缓冲区复制,在性能上相对堆缓冲区有一定优势,但同时也存在一些弊端。两种缓冲区对应的API如下:JVM堆缓冲区:ByteBuffer.allocate(size)本地缓冲区:ByteBuffer.allocateDirect(size)从堆中分配的缓冲区为普通的Java对象,生

2011-06-28 17:34:00

NIO与传统IO的区别

 传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量小于连接数量,所以每个线程进行IO操作时就不能阻塞,如果阻塞的话,有些连接就得不到处理,NIO提供了这种非阻塞的能力。 小

2011-06-26 02:19:00

NIO操作类型与就绪条件

使用NIO编程时,对NIO就绪选择的理解,是NIO编程的关键。NIO与传统IO的区别是提供了就绪选择的能力,为原来的阻塞的IO提供了非阻塞的能力,从而为我们提供了用少量的线程数量同时为大量的连接通信的可能。 1、操作类型     NIO的就绪选择共涉及4个操作:OP_READ, OP_WRITE, OP_ACCEPT, OP_CONNECT。客户端对应的通道是SocketChannel

2011-06-25 21:54:00

NIO的长连接及NIO的内存泄漏

使用NIO进行socket编程时,需要SelectionKey key将chanel和selector关联,selector负责注册到其上的channel的就绪选择。下面的两行代码经常用到:key.attach(attachment);key.attachment();因为从channel读到的数据并不是完整的数据包,当读取到数据时一般先将它保存在附件中,下次就绪时再继续读取以组成完整

2011-06-24 11:47:00

Java中唯一数的生成

唯一数的生成很简单,基本上以时间为基础进行生成。在JDK里面已经有java.util.UUID类可以生成唯一的随机数。如果希望生成的唯一数为特定的格式,那么就需要自己来生成唯一数了。生成唯一数时有两个因素是必须在考虑的:必须保证唯一,这个一般以时间为基础进行变化。高效,当然越高效越好。有时我们希望在生成的唯一数中包含特定的内容,如把当前时间,如20110609132641,作为

2011-06-09 13:39:00
勋章 我的勋章
    暂无奖章