- 博客(7)
- 问答 (1)
- 收藏
- 关注
原创 小心Daemon线程
daemon线程 可能被翻译成精灵线程,其实叫守护线程更合适。 可以通过setDaemon(true)来使一个线程成为daemon线程,否则都是普通线程。 JVM关闭时不会调用daemon线程会被直接抛弃,也不会调用finally和释放栈,所以可能导致内存泄露,要特别注意。...
2012-07-29 20:58:26 115
原创 Spring的BeanFactory和FactoryBean
Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean。工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的getObject方法所返回的对象。在Spring框架内部,AOP相关的功能及事务处理中,很多地方使用到工厂Bean,本文简单分析工厂Bean的用法。首先回顾一下普通Bean,普通...
2012-07-29 16:24:57 93
原创 NIO网络编程心得
不要随便注册OP_WRITE 参见 http://marlonyao.iteye.com/blog/1005690 一定要保证异常情况下,客户端SOCKET关闭,否则服务器端的select会总有值,且readable总是OK的,导致服务器死循环。...
2012-07-29 00:16:06 90
原创 Socket中PrintStream,PrintWriter的print无法被readUTF获取
发现一个问题 Socket编程中要慎用 PrintStream和PrintWriter,首先创建时要注意加上 true,自动flush,否则数据无法发送出去, 其次它们的println()要用它们的readLine来读取,如果你用用DataInputStream.readUTF读取将导致阻塞,一直都读取不到数据,见下面代码就是。 package com.chat.server.io; ...
2012-07-28 22:35:45 202
MappedByteBuffer小结
java的内存映射文件有如下特点: 1,使用虚拟内存,因此分配(map)的内存大小不受JVM的-Xmx参数限制,但是也是有大小限制的,首先他理论上不能超过Integer.MAX_VALUE也就是32位操作系统的2G,其次,其实际值在不用操作系统还不一样,在win7 32位操作系统下,他不能超过1.5G,具体多少,没测出来,也不知道什么原因。 2, 对应读大文件,当文件超出1.5G限...
2012-07-28 17:27:31 391
原创 jstat 详解
jstat 详解 jstat 1. jstat -gc pid 可以显示gc的信息,查看gc的次数,及时间。 其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。 2.jstat -gccapacity pid ...
2012-07-28 12:56:31 276
原创 NIO的内存映射文件一些问题
见 http://yipsilon.iteye.com/blog/298153 我觉得mappedbytebuffer更适用于文件较小,但是有些字节需要反复读取得情况 大约是这样的,对于计算一个大文件的MD5来说,每个字节都只读取一次,映射到内存应该是不会快的。 对于特别小的文件,javadoc是这么说的: 引用 For most operating systems, mapp...
2012-07-28 12:51:26 91
空空如也
为什么不能在论坛中提问
2011-04-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人