java
文章平均质量分 66
yznkaixin
这个作者很懒,什么都没留下…
展开
-
java中关于浮点运算需要注意的
Java中浮点数(double、float)的计算是非精确计算,请看下面一个例子: System.out.println(0.05 + 0.01); System.out.println(1.0 - 0.42); System.out.println(4.015 * 100);...2010-03-29 20:52:17 · 81 阅读 · 0 评论 -
java中socket通讯的小陷阱
1:在java的服务端代码: public class SimpleServerSocket { public static void main(String[] args) { try { ServerSocket server = new ServerSocket(6789); Socket client;...2010-04-13 14:27:52 · 95 阅读 · 0 评论 -
java读取指定package下的所有class
之前在看spring注解的时候,有看到再配置文件里面定义component scan package就能自动扫描对应包下面的class,然后根据注解生成相应的bean。自己对这个功能很好奇,就搜了下,找到了实现的关键代码,记录下。后续再对这段代码深入学习。 /** * 从包package中获取所有的Class * * @param pack ...2010-04-15 18:31:58 · 469 阅读 · 0 评论 -
HttpClient的超时用法小记
HttpClient在使用中有两个超时时间,是一直接触和使用的,由于上次工作中使用httpClient造成了系统悲剧的情况,特地对它的两个超时时间进行了小小的测试,在这里记录下。 测试版本为HttpClient——3.1 一:连接超时:connectionTimeout 1:指的是连接一个url的连接等待时间。 2:...2010-04-18 10:41:09 · 172 阅读 · 0 评论 -
google Collection 的MapMaker使用体验
前几天准备在写一个本地缓存的时候,有一个功能是设置超时时间,我当时用的是每次get的时候判断上次get的时间,跟当前时间对比看是否超过预期时间,来决定是否过期的。 RednaxelaFX提示我说,可以考虑使用googleCollection的MapMaker,除了可以设置超时功能外,还可以绑定key的未取到值的function,当通过get(key)取缓存为空的时候,...2010-05-01 15:24:58 · 179 阅读 · 0 评论 -
【新手记录】Map中存放Object类型使用小记
之前在使用google Collections的MapMaker的时候,比较正式的写的时候,map中存放的Key是我自己写一个CacheKey的Object,但是在存放过后,再通过cache的get却总是找不到缓存记录,心里纳闷了很久为啥。 无奈之下,debug进去了get的源码,发现了。。。 这里就放HashMap的get代码,其它类型的map都差不...2010-05-02 11:42:59 · 830 阅读 · 0 评论 -
mapMaker使用后记
在上一篇使用 google Collection的MapMaker的时候,提到了一个demo。接下来做了一个修改,记录下其中的现象。import java.util.concurrent.ConcurrentMap;import java.util.concurrent.TimeUnit;import com.google.common.base.Function;...2010-05-12 11:06:28 · 310 阅读 · 0 评论 -
weak,soft,phtom Reference,软,弱,虚引用!
前面的简介:strongReference:强引用softReference:软引用。weakReference:弱引用phtomReference:虚引用 一:strongReferenceString a = new String("hello world");String b=a; 咯,这里b就是个强引用咯。反正就是会一直指向那个String的。也就是大家...2010-05-12 11:14:35 · 138 阅读 · 0 评论 -
【新手记录】servlet的初始化init方法什么时候被调用?
前几天跟几个同学聊到这个,我一直认为的是说:在容器启动的时候,就会加载web.xml然后将里面的servlet进行初始化加载,然后调用其init方法。 可是一个同学说:是在第一个请求到来的时候才调用init方法。 另外一个同学说:跟配置的servlet的<load-on-startup>1</load-on-startup>这个参数有关。...2010-05-15 21:13:19 · 1424 阅读 · 0 评论 -
servlet specification,init方法~~~
在前面一篇文章 “【新手记录】servlet的初始化init方法什么时候被调用?”中用实例验证了下servlet的init方法何时被调用,虽然有了测试结果。不过还是感觉不放心,于是到sun官方网站看了下servlet的specification。 得到了肯定的答复: 首先是J2EE api里对servlet的init方法的说明: initvoid ini...2010-05-20 14:13:54 · 72 阅读 · 0 评论 -
BigDecimal带精度的运算
之前提到过在商业运算中要使用BigDecimal来进行相关的钱的运算(java中关于浮点运算需要注意的),可是实际使用中,简单的用BigDecimal还是出现了一些小问题。 BigDecimal a = new BigDecimal(998.01); BigDecimal b=new BigDecimal("100"); ...2010-05-20 16:12:56 · 499 阅读 · 0 评论 -
java命令行知多少(反正我知道的比较少)
打开 %java_home%\bin 下面,看一堆的命令 windows下是一堆exe文件。 挑几个主要的来学习记录下,蛮有用的,居家旅行,调错装x,必备!~ java :忽略 javac :忽略 , 唯一需要知道 javac -g ,并且通过实地证明,eclipse,mvn编译都是默认加了-g进行编译的。(感谢R_Fx指导,名字太长记不住。。。) ...2010-12-29 17:11:31 · 208 阅读 · 0 评论 -
【无聊的笔记】将数字转换为中文读法
将阿拉伯数字的数变成我们常用的中文读法, 比如说: 1234,读作1千2百3十4,反正就跟中文读的一样就对了。 分析过程其实是这个题目最重要的,但是我实在不想写那么多文字了。 这里纯粹为了记录代码,以后再补上分析过程和思路。 代码记录: import java.util.Arrays;import java.util.HashMap;im...2011-06-05 15:43:16 · 714 阅读 · 0 评论 -
用spring连接jmx
接着上一篇 “原生态连接jmx”的例子。 上一篇中,发布一个MBean还要实现接口,还要写一堆东西比较麻烦。如果使用spring的话,spring会帮我们吧这些都做掉,之后的代码就变得异常简洁。 在使用了spring之后唯一需要的就是 一个main函数,一个配置文件,一个发布的MBean的POJO。 代码分别如下: MBean的POJO: ...2010-11-14 18:20:04 · 101 阅读 · 0 评论 -
自动动手写原生态jmx,MbeanInfo,invoke
使用jmx的东东主要包括下面几个步骤了: 发布jmxServer。 注册jmxBean到MBeanServer上。 使用连接jmx的client工具来连接jmxServer。 一:前言 MBeanServer以及连接MBean的Client多的数不清。这里我就挑选一种经常会用到的方式来, 本片文章主要还是为下篇 “JBOSS里使用jmx来进行监控” 做好铺垫。 MBeanServer...2010-11-16 22:07:49 · 219 阅读 · 0 评论 -
【监控】通过jmx获得系统的gc,内存情况
通过jmx访问jvm知道的Mbean的一些信息,可以取得系统运行时的一些情况,比如说,内存(堆内存大小,非堆内存大小),还有各个区的内存大小。还可以访问gc收集器的gc次数。来确定minorGC和fullGc的次数都可以获得。 一:获得堆内存和非堆内存的大小。 public String monitorMemory() { StringBuilder ...2010-11-27 21:52:39 · 1167 阅读 · 0 评论 -
【转】mysql Host is blocked error错误解决方案
Host is blocked because of many connection errors 刚才发现,公司某一台Web服务器访问时提示:错误描述:Host '*' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'第一次见到这提示,记录一下。从描述上...原创 2011-08-01 14:40:55 · 445 阅读 · 0 评论 -
用mina网络传输使用ObjectSerializationCodecFactory一个小注意点
背景: 之前的 一篇介绍mina的博客中,提到通过mina来传输文件的demo, 具体的demo地址在这: http://guoliangqi.iteye.com/blog/628063 当时的评论回复里面,有一个同学说用我的这个demo传输图片特别慢,是特别慢,不是慢。我当时没在意就随手回了下,说nio对于传输这种单文件的优势并不明显。 但是我重新运行...2011-04-05 18:18:42 · 349 阅读 · 0 评论 -
BeanPostProcessor使用心得
最近想对项目中的所有bean进行一个代理。然后监控bean得方法的使用情况。 刚开始想的方法是:重写项目的beanFactory,然后再getBean的使用,对结果object进行一个代理,达到我的目的。但是发现重写getBean的方法,无法对bean中的依赖注入的bean(set进来的bean)进行代理。 正好看到了beanPostProcesso...2010-04-07 11:48:52 · 175 阅读 · 0 评论 -
使用activeMQ实现jms
一:jms介绍 jms说白了就是java message service,是J2EE规范的一部分,跟jdbc差不多,sun只提供了接口,由各个厂商(provider)来进行具体的实现,然后使用者使用他们的jar包进行开发使用即可。 另外在jms的API中,jms传递消息有两种方式,一种是点对点的Queue,还有一个是发布订阅的Topic方式。区别在于:...2010-04-06 12:11:18 · 62 阅读 · 0 评论 -
java中foreach
public class TestForEach { /** * @param args */ public static void main(String[] args) { Aeach[] a = new Aeach[2]; //第一种赋值方式 // for (int i = 0; i...2010-04-06 12:08:09 · 69 阅读 · 0 评论 -
简单使用Xtream
简单的介绍使用xtream;使用 xsteam保存数据减少数据依赖再解决数据依赖的问题上,渡虚提供了一个很好的 工具 xsteam.主页:http://xstream.codehaus.org/xsteam可以使JAVA对象和xml文件任意转换。下面是他的具体使用方法:首先,在你想模拟的数据对象的地方加上下面的代码 XStream xstream = new XStream...2010-03-29 20:56:50 · 671 阅读 · 0 评论 -
最近的小知识
2009-2-22 下午7:121:这几天我右边的哥们的服务框架一直跑不起来。反反复复的搞了好久叫了他们好多人过来查看,症状就是收不到推送过来的服务列表地址。将包放在别人那跑都正常的。。。N久之后毕大师,突然让他试试更换JDK的版本。。。果然是这个问题。。。他的jdk是很久前的一个版本。。2:今天下午在部署我们的项目的时候总是感觉好像读不到w...2010-03-29 20:58:11 · 45 阅读 · 0 评论 -
关于java中的 NAN
今天突然看到 在java里还有个 NAN,直接先看代码: double a =0 , b= 0 ,c; c = a/(a+b); System.out.println(c); 会输出什么呢?结果输出的是NAN;NAN,...2010-03-29 20:58:37 · 165 阅读 · 0 评论 -
关于java中的线程的学习
1: 关于异步编程的callback实现。 主要实现为:通过定义callback接口,在主线程中重新开一个线程去执行某项任务,然后任务完成后。再回调主线程来继续下面的逻辑: 代码: 接口:callback(还以为这个是JDK的,哪知道自己写都行。。。没那么神秘的!) public interface Callback ...2010-03-30 12:41:40 · 64 阅读 · 0 评论 -
java学习——NIO篇
Nio也就是继JDK1.4之后关于io的新特性的new Io,也就是传说中的无阻塞io。Nio主要包括几个方面:ByteBuffer:Channel:Selector:原理部分下次再整理,本次主要是进行实例。下面要实现就是使用nio进行简单的文本传递。服务端:public class MainServer { private static final...2010-03-30 12:44:01 · 66 阅读 · 0 评论 -
java学习——mina篇
mina是对nio的具体实现。是目前比较高效和流行的nio框架了。下面是对使用mina进行通讯的一个简单demo,后面再用mina写一个RPC的简单框架。mina主要包括:(使用的mina版本为2.0.0.M4 core,具体可见官方网站)mina也分服务端和客户端(这是肯定的...)其中服务端为:NioSocketAcceptor客户端为:NioSocketC...2010-03-30 12:50:10 · 120 阅读 · 0 评论 -
java学习——NIO篇2
在前面写的nio学习中是采取的简单的demo,后来在网上看到一个demo,一个用来多线程下载的demo,在这个demo里才会体现nio的高性能之处。充分体现nio的优势。场景:一个服务端,然后100个客户端同时连接服务端,然后下载一个文件下来。服务端只需要一个连接来处理这些来自客户端的连接。其中对文件的传递采用的是nio中的FileChannel。很好用的一个东西。 忘...2010-03-31 12:23:50 · 86 阅读 · 0 评论 -
java学习——hessian篇
在可选的java远程通讯中,比较有名的就是hessian了。根据我的了解应该是其性能是最好的。RMI已经逐渐被抛弃了。web service在性能上比hessian差很多,毕竟是以XML为媒介传播的。但是可以基于多语言的平台。hessian应该说算是面向java的远程通 讯框架了。下面简单的实现hessian实现RPC的demo。 hessian是基于http协...2010-03-31 12:27:48 · 186 阅读 · 0 评论 -
java小知识——Date的Format
Date date=new Date();SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(dateFm.format(date));Date now = java.sql.Date.valueOf("2008-12-04");System.out...2010-03-31 12:34:32 · 76 阅读 · 0 评论 -
java并发体验。。。
一直以来都在说多线程,说并发,发现有的时候并发在我眼前,我自己都不知道。。。由于在spring中发布的服务service一般都是单例模式的,因此在多个请求过程中,调用的都是一个service,这个时候就是并发的问题了。如果在这个service里我们设定了一个全局变量,就会出现问题了。测试代码如下:使用一个测试DO:public class TestDO { ...2010-04-01 14:59:15 · 65 阅读 · 0 评论 -
简单的线程池
import java.util.LinkedList;/** * 线程池类 */public class ThreadPool extends ThreadGroup { private boolean isClosed = false; //线程池是否关闭 private LinkedList workQueue; //工作队列 private...2010-04-01 15:06:08 · 59 阅读 · 0 评论 -
JDK自带线程池学习
线程池主类:import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;public class DataHandlerThreadPool { //核心线程...2010-04-01 15:15:04 · 78 阅读 · 0 评论 -
jvm的GC的一些学习总结
一:java内存区的简单介绍1、堆(Heap)JVM管理的内存叫堆。在32Bit操作系统上有1.5G-2G的限制,而64Bit的就没有。JVM初始分配的内存由-Xms指定,默认是物理内存的1/64但小于1G。JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4但小于1G。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制,可以由-XX:MinHea...2010-04-02 12:35:25 · 113 阅读 · 0 评论 -
关于list的一个小知识
最近咋使用 list.remove 方法的时候出了点问题。。。贴出来,记录下。public static void main(String[] args) { // TODO Auto-generated method stub List<Integer> list = new ArrayList();// =null erro...2010-04-02 12:39:12 · 91 阅读 · 0 评论 -
spring加载bean实例化顺序
问题来源:有一个bean为A,一个bean为B。想要A在容器实例化的时候的一个属性name赋值为B的一个方法funB的返回值。如果只是在A里单纯的写着:private B b;private String name = b.funb();会报错说nullpointException,因为这个时候b还没被set进来,所以为null。解决办法为如下代码,同时学习下spr...2010-04-04 14:44:27 · 643 阅读 · 0 评论 -
spring的BeanPostProcessor学习
在spring中可以通过BeanPostProcessor接口来实现,properties注入的时候动态控制bean行为的功能。接着上面一篇文章中的例子。使用A,B的类,然后新建一个实现BeanPostProcessor的类。public class BeanPost implements BeanPostProcessor { public Object postProces...2010-04-04 14:47:54 · 70 阅读 · 0 评论 -
ibatis的selectkey小学习
背景: 在使用ibatis插入数据进数据库的时候,会用到一些sequence的数据,有些情况下,在插入完成之后还需要将sequence的值返回,然后才能进行下一步的操作。 使用ibatis的selectKey就可以得到sequence的值,同时也会将值返回。不过对于不同的数据库有不同的操作方式。 对于oracle: <insert id...2010-04-04 14:49:07 · 136 阅读 · 0 评论 -
定时执行Timer的源码阅读
Timer的实现原理: 1:timer简介; 定制执行一个task,谁用谁知道; 2:timer使用 Timer instance = new Timer(true);instance .schedule( new TimerTask() { public void run() { ...2012-02-22 18:51:52 · 132 阅读 · 0 评论