java
文章平均质量分 58
killalllsd
性格开朗
展开
-
利用Java自带的MD5加密
import java.security.MessageDigest;public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '...2007-09-28 01:49:44 · 74 阅读 · 0 评论 -
java 实现简单的文件拷贝
昨天面试,面试官要我在黑板上写个java文件复制的代码,但是一时紧张没写出来,回来后决定写一个出来。/* * To change this template, choose Tools | Templates * and open the template in the editor. */package cn.lsd;import java.io.File;import jav...原创 2008-11-26 17:36:01 · 115 阅读 · 0 评论 -
java 快速排序demo
快速排序算法思想如下,先选取一个元素作为基准,然后根据这个基准依次比较整个数列,最后把这个数列分为两类,例如,左边的数都不比这个基准大,右边的全比基准大,然后把这个基准放在中间,二分这两类。然后再把这个这个数列分成两块,在用这个算法。[code="java"]package cn.lsd;import java.util.Comparator;import java.util....原创 2008-11-29 19:52:58 · 118 阅读 · 0 评论 -
关于大量缓存对象回收的思考
前几天面试,被问到了一个问题,如果当前有数亿条记录,但是缓存最多放100万条记录,怎么保证缓存很好的被利用(大概是个这个意思,具体的问题记得不太清楚了).当时一下没回答出来,就随便说了一下,利用类似java虚拟机的垃圾回收算法来实现缓存的回收.回来后苦思冥想,相出一个简单的方案.首先,利用HaspMap(考虑用ConcurrentHashMap,并发下这个map效率高)来存放缓存对象,每次...2008-12-01 15:34:22 · 133 阅读 · 0 评论 -
Java基础-关于session的详细解释
一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可以看到这样的话“在一个浏览器会...原创 2008-12-01 23:49:56 · 63 阅读 · 0 评论 -
java基础知识总结
http://wiki.caucho.com/Hessian_Java_API_Overview hession wiki IOInputStream,OutputStream和Read,Write区别:前者读写都是以字节为单位,后者是以Unicode为单位。java.util.concurrent-------------begin对象在并发情况下自加计数,可以利用java.util.c...原创 2009-01-06 00:50:28 · 66 阅读 · 0 评论 -
几种通讯协议的比较
一、综述本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能。RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以用于...原创 2009-01-20 15:26:05 · 387 阅读 · 0 评论 -
关于Java占用内存的研究 (转载请注明作者zms)
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://canyousee.blogbus.com/logs/3795658.html最近对程序占用内存方面做了一些优化,取得了不错的效果,总结了一些经验简要说一下,相信会对大家写出优质的程序有所帮助下面的论述针对32位系统,对64位系统不适用,后叙经常你写了一个程序,一测试,功能没问题,一看内存占用也不多,就不去考虑其它的...原创 2009-01-20 15:28:08 · 88 阅读 · 0 评论 -
Bit数组
public class BitArray{//用byte数组模拟实现以个同步的bit一维数组 private byte[] array=null; private int size=0; //0xfe=11111110b;这个数和byte数与运算,第一位总会被置为0其他位不变 private byte[] zero = {(byte)0xfe,(byte)0xfd,(byte)0xfb...原创 2009-01-20 18:56:45 · 101 阅读 · 0 评论 -
java 的深度克隆
只有实现了cloneable接口才算是真正的深度克隆.在复制打对象时速度有优势?原创 2009-07-01 20:07:10 · 74 阅读 · 0 评论 -
搭建Android开发环境
在eclipse上安装Android1.安装eclipse的Android开发插件Help->install for new-> Work with 添加https://dl-ssl.google.com/android/eclipse/2.安装SDK在http://www.android123.com.cn/sdkxiazai/369.html 一、SDK...2010-04-05 23:22:44 · 78 阅读 · 0 评论 -
ConcurrentHashMap中的remove方法的bug
最近研究了一下 ConcurrentHashMap中源码发现jdk中的remove方法实现有点问题.同时参考了文章: http://www.iteye.com/topic/344876以下是对此文章的一段评述的引用: V get(Object key, int hash) { if (count != 0) { // read-volatile ...2010-04-30 11:48:32 · 2959 阅读 · 1 评论 -
一个webapp目录下部署多个web应用
在同一个resin下的webapp目录部署多个web应用,发现他们之间是互相独立的:虽然多个web应用都是同一套代码,但是它们互相不会干扰,因为它们的类加载器是不一样的:例如:resin对每个web应用加载都是用的EnvironmentClassLoader,但是不同的web应用类加载器不一样 cache:com.qq.jutil.jcache.adv.AdvCache@343...原创 2009-08-21 10:34:29 · 242 阅读 · 0 评论 -
IoServer源代码阅读笔记
NIO:写事件要尽量早的被注销. 1,IOServer用一个主线程来处理Accept事件,然后把得到的key封装到IOSession中,再分配到一个读写处理器管理器(IoReadWriteMachineManager是一个数组,如果当前服务器有N个cpu则里面就有n个IoReadWriteMachine对象,相当于每个cpu绑定一个IoReadWriteMachine进行读写的io操作)中处理...原创 2009-08-23 21:57:37 · 138 阅读 · 0 评论 -
为何在使用CMS gc算法时会出现连续两次full gc
现象:jstat -gcutil pid 1000观察到的情况,段时间内连续两次full gc S0 S1 E O P YGC YGCT FGC FGCT GCT 59.33 0.00 63.98 69.66 59.31 24338 274.969 307 17.349 292.318...原创 2011-09-01 11:04:15 · 1250 阅读 · 0 评论 -
request.getRequestURI 与request.getServletPath() 区别
路径:resin/webapps/my_proj/test/request.jsphttp://localhost:8080/my_proj/test/request.jsp?*** request.getRequestURI() /my_proj/test/request.jsprequest.getRequestURL() http://localhost:8080/my_pr...原创 2011-02-16 19:38:35 · 630 阅读 · 0 评论 -
HashMap的遍历效率讨论
经常遇到对HashMap中的key和value值对的遍历操作,有如下两种方法:Map<String, String[]> paraMap = new HashMap<String, String[]>();................//第一个循环Set<String> appFieldDefIds = paraMap.keySet();for (Str...原创 2008-11-26 11:31:30 · 154 阅读 · 0 评论 -
Java ArrayList 实现
ArrayList是List接口的一个可变长数组实现。实现了所有List接口的操作,并允许存储null值。除了没有进行同步,ArrayList基本等同于Vector。在Vector中几乎对所有的方法都进行了同步,但ArrayList仅对writeObject和readObject进行了同步,其它比如add(Object)、remove(int)等都没有同步。 1.存储 ArrayLis...原创 2008-11-25 23:02:04 · 56 阅读 · 0 评论 -
Java生成UUID
UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部...2007-09-28 01:51:51 · 121 阅读 · 0 评论 -
java调用bat&监控windows下的某一进程是否关闭
java调用bat:如果要和Runtime创建的进程交互,必须自己写交互的代码,例如通过socket,两个java进程互相通信。import java.io.IOException;public class Main {public static void main(String[] args){try {Runtime rt = Runtime.getRuntime();rt....2008-07-30 15:22:50 · 627 阅读 · 0 评论 -
web开发java中文编码问题
关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType...2008-07-30 15:25:35 · 89 阅读 · 0 评论 -
Cookie域
server端: Set-Cookie:domain=.test.com key=000001Set-Cookie:domain=.test.com path=/lsd key=test.com/lsdSet-Cookie:domain=.test.com path=/lsd/ak47 key=test.com/lsd-ak47Set-Cookie:domain=.test.co...2008-07-30 15:27:31 · 82 阅读 · 0 评论 -
MINA框架使用总结
参考:http://xinsync.xju.edu.cn/index.php/archives/category/prglang/java/mina简单介绍:MINA框架是对java的NIO包的一个封装,简化了NIO程序开发的难度,封装了很多底层的细节,然开发者把精力集中到业务逻辑上来,最近做了一个相关的项目,为了备忘对MINA做一个总结。下面这个start方法用来初始化MINA:priv...2008-07-30 16:05:53 · 1305 阅读 · 0 评论 -
Java中的阻塞和非阻塞IO包各自的优劣思考
NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式。反应器(Reactor):用于事件多路分离和分派的体系结构模式通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞与非阻塞。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止。而对于非阻...原创 2008-07-30 17:31:38 · 89 阅读 · 0 评论 -
用Java实现汉诺塔
import java.util.Stack;public class HanNuoTa { public static void main(String[] args){ HanNuoTa hnt = new HanNuoTa(6); } public HanNuoTa(int count){ this.count = count;// try{// fou...2008-07-31 10:47:12 · 189 阅读 · 0 评论 -
HashMap的数据结构和hashcode冲突
按照散列函数的定义,如果两个对象相同,即obj1.equals(obj2)=true,则它们的hashCode必须相同,但如果两个对象不同,则它们的hashCode不一定不同,如果两个不同对象的hashCode相同,这种现象称为冲突,冲突会导致操作哈希表的时间开销增大,所以尽量定义好的hashCode()方法,能加快哈希表的操作。也就是说HashMap中对不不同的key来说,他们的has...原创 2008-08-05 15:20:04 · 331 阅读 · 0 评论 -
日期处理类在jdk中的演变史
最开始只提供了Date类后来由于Date类太简单,例如你要计算下一个时区的时间就不行了,所以就提供了个Calendar类。如果想把一个时间按照一定跟是输出就用DateFormat,但是一般来说是用他的子类SimpleDateformat。把一个时间转换为GMT时间。 public static String formatGMTDate(Date date) { retu...原创 2008-08-06 09:59:26 · 69 阅读 · 0 评论 -
Servlet的线程安全问题
这个问题网上一直没有搜到很详细的解释,也可能是高人的解释不符合我的理解方式。所以自己到网上搜集了写资料再加自己的想法,随便写了点东西发到论坛上,希望大家给予修正意见,看我是否理解对了。一般servlet在jvm中只有个对象,当多个请求来请求一个jsp页面的时候,实际上都是调用这个jsp编译好的servlet类doPost或者doGet方法。现在我就模拟一个servlet的调用过程new ...2008-08-08 11:32:52 · 153 阅读 · 0 评论 -
c与java通信时数值类型存储的顺序问题
Byte:一个字节,标记为byte 0Word:二个字节,从byte 0到byte 1Long : 四个字节,从byte 0到byte 3每个byte由8个位(bit)组成,从bit 7 到 bit 0 (从左往右)。每个word由16个 bit 组成,从bit 15 到 bit 0 (从左往右)。每个long由32个 bit 组成,从bit 31 到 bit 0 (从左往右)。通常来...2008-08-09 15:19:07 · 71 阅读 · 0 评论 -
java所有历史版本下载地址
http://java.sun.com/products/archive/2007-10-12 22:02:07 · 775 阅读 · 0 评论 -
java内存泄露(转)
这两天看了一本老书《bitter java》,第一次系统地了解了所谓“反模式”。就书的内容来说已经过于陈旧,书中提到的magic servlet、复合jsp等等反模式已经是早就熟知的编程禁忌,而如web页面不能有太多元素这样的反模式也因为ajax的出现(异步加载)变的不是那么“反模式”了,其中又讲述了很多ejb的反模式,这些在轻量级框架流行的今天也早已经过时。不过书中有一个章节倒是挺有价值,讲述的...原创 2008-01-19 00:00:15 · 65 阅读 · 0 评论 -
String和==号的问题
String name = "you"; String name1 = "you"; try { byte[] nameByte = name.getBytes("GBK"); name = new String(nameByte); } catch (UnsupportedEncodingException e) { e.printStackTrace(); ...2009-03-09 19:45:42 · 101 阅读 · 0 评论 -
try finally return
class Entry { public Entry(String value){ this.value = value; System.out.println("[Entry]setValue:"+value); } private String value = ""; ...原创 2009-03-20 19:21:52 · 63 阅读 · 0 评论 -
配置filter拦截forward之类的内部转发
在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ include file="/index.jsp"%>的情况。到了servlet-2.4中Filter默认下只拦截外部提交的请求,forward和include这些内部转发都不会被过滤,但是有时候我们需要forward的时候也用到Filter,这样就需要如下配置。 ...原创 2011-02-18 17:19:19 · 784 阅读 · 0 评论