
JDK
文章平均质量分 71
iteye_4660
这个作者很懒,什么都没留下…
展开
-
NIO的陷阱(一)
SocketChannel.open(new InetSocketAddress(hostIp, hostListenningPort))与SocketChannel.open(),socketChannel.connect(new InetSocketAddress(hostIp, hostListenningPort))的比较 相同点:这两种写法实现的功能一样,都是打开通道并连上服务端...2011-12-15 11:52:43 · 89 阅读 · 0 评论 -
java的容器排序
在项目开发中,经常回用到容器排序,而它们的写法比较固定,今天就来总结一下.pojo类如下:package com.ldh;public class Student implements Comparable<Student> { private int id; private String name; private in...原创 2013-04-15 21:25:23 · 309 阅读 · 0 评论 -
JVM的体系结构和垃圾回收机制
java虚拟机的体系结构图: JVM内存区域介绍 堆(Heap) Heap是大家最为熟悉的区域,它是JVM用来存储对象实例以及数组值的区域,可以认为Java中所有通过new创建的对象的内存都在此分配,Heap中的对象的内存需要等待GC进行回收,Heap在32位的操作系统上最大为2G,在64位的操作系统上则没有限制,其大小通过-Xms和-Xmx来控制,-Xms为JV...原创 2013-04-03 14:57:28 · 146 阅读 · 0 评论 -
BigDecimal在实际项目的应用及遇到的问题
我们都知道,java中对大小数,高精度的计算都会用到BigDecimal.但是在实际应用中,运用BigDecimal还是会遇到一些问题.下面说一下我在项目中怎么样BigDecimal和遇到的一些问题. 1. 对商品的价格进行格式化,比如所有商品的价格保留两位小数 /** * * @param bd 商品的...2013-03-27 13:30:45 · 251 阅读 · 0 评论 -
ThreadLocal使用及原理解析
1.ThreadLocal干什么的? 我们知道,在多线程程序中,同一个线程在某个时间段只能处理一个任务.我们希望在这个时间段内,任务的某些变量能够和处理它的线程进行绑定,在任务需要使用这个变量的时候,这个变量能够方便的从线程中取出来.ThreadLocal能很好的满足这个需求,用ThreadLocal变量的程序看起来也会简洁很多,因为减少了变量在程序中的传递. ...原创 2013-08-31 16:48:09 · 780 阅读 · 0 评论 -
自动化代码生成工具AutoPersistence
简单介绍: AutoPersistence是一款根据数据库表信息生成相关的java代码,xml配置文件的工具,对提高项目开发效率有非常好的帮助.可以用来生成dao层、service层及其测试类代码、ibatis、spring相关的配置文件.稍微配置一下数据库访问信息和代码存放路径就可以一键生成java代码,再稍微修改一下测试代码就可以开始测试dao,service层代码了.适用...原创 2013-06-18 09:59:02 · 468 阅读 · 0 评论 -
找bug记(转)
上周在线上系统发现了两个bug,值得记录下查找的过程和原因。以后如果还有查找bug比较有价值的经历,我也会继续分享。 第一个bug的起始,是在线上日志发现一个频繁打印的异常——java.lang.ArrayIndexOutOfBoundsException。但是却没有堆栈,只有一行一行的ArrayIndexOutOfBoundsException。没有堆栈,不知道异常是从什么地方抛出来的,也...原创 2012-03-28 13:49:42 · 179 阅读 · 0 评论 -
实现自己的类加载器
有时候,根据自己项目的需求,需要重新实现属于自己的类加载器,以满足项目的灵活性和扩展性,下面我们就来实现自己的类加载器. 实现自己的类加载器必须首先继承一个父类加载器. 编写一个类加载器会涉及到以下几个方法: 1. findClass(String name) 根据类的路径查找类,必须重写的方法 2.defineClass(String name, ...原创 2012-03-25 14:35:28 · 71 阅读 · 0 评论 -
CopyOnWriteArrayList与ConcurrentHashMap的特点
1.CopyOnWriteArrayList在每次需要修改时,会创建一个新的容器拷贝,以此来实现可变性.这种"写入时复制"的特性能够保证迭代器在迭代时实现容器的修改.适合在读多更新少的场合 2.ConcurrentHashMap采用分离锁,这种机制允许任意数量的读线程和有线数量的写线程并发访问map.ConcurrentHashMap返回的迭代器具有弱一致性,允许迭代的时候并发的修改map...2012-02-10 16:58:29 · 261 阅读 · 0 评论 -
Timer和ScheduledExecutorService区别
1.Timer对调度的支持是基于绝对时间的,对系统时钟的改变是敏感的.ScheduledExecutorService只支持相对时间 2.TimerTask抛出的未检查的异常会终止timer线程,此后已经被安排但尚未执行的TimerTask永远不会再执行了,新的任务也不能被调度了 3.创建Timer的时候会创建TimerThread做为执行线程,所以一个Timer对应一个线程,如果...2012-02-08 16:24:05 · 204 阅读 · 0 评论 -
sleep和wait的比较
1.调用sleep方法没有释放锁,并且一直占着cpu. 而调用wait方法释放了锁,并且让出cpu 2.wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在 任何地方使用 3. sleep是Thread类的方法,wa...原创 2012-07-03 11:11:05 · 118 阅读 · 0 评论 -
FileReader读取文件,由于不确定源文件的编码格式不同,导致读出的文件乱码的问题(转)...
读取一个UTF-8编码格式的文件,代码中起初用FileReader读取到一个字符串,然后转换字符集,结果就出问题了:文件读入时是按OS的默认字符集即GBK解码的,我先用默认字符集GBK编码str.getBytes(“GBK”),此时应该还原为文件中的字节序列了,然后再按UTF-8解码,生成的字符串按理说应该就应该是正确的。为什么结果中还是有部分乱码呢?问题出在FileReader读...原创 2011-12-15 12:30:12 · 304 阅读 · 0 评论 -
poi导出Excel报表
下面是对poi导出excel的封装,稍微改动一下就能用于其它项目 pojo类见http://liudeh-009.iteye.com/blog/1847626的Student类 Excel导出类: /** * * 类ExportBookOrderTool.java的实现描述:学生数据报表导出工具类 * @author liudeh_...原创 2013-04-17 12:32:24 · 159 阅读 · 0 评论