自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 java类加载原理分析

未经同意,严禁转载! 这篇文章将比较深入的介绍java类加载原理和过程,虽然很多情况你都不需要了解类加载的过程,但是如果你希望了解java是如何工作的,或者希望定义自己的类加载器,就一定要了解类加载的过程,当然,无论你是否要参与类加载过程,了解这个过程对你都会有很大的帮助。本文希望通过一步一步的分析来说明类加载的过程,希望这

2006-07-22 22:04:00 13789 8

原创 java类加载的表现形式

java中的类是动态加载的,我们先看一下我们常用的类加载方式,先有一个感性的认识,才能进一步深入讨论,类加载无非就是下面三种方式。class A{}class B{}class C{}public class Loader{    public static void main(String[] args) throws Exception{       Class aa=A.class;    

2006-06-19 12:58:00 6048 2

原创 k方和的使用

有这样一个问题:for(int i=0;i   for(int j=0;j     for(int k=0;k        ;执行的次数,当然通过程序可以计算出来,不过计算出来的数字是毫无意义的,因为n改变了又得重新计算.下面根据k方和公司给出一个方法,即使是4次循环或者5次循环都可以计算.这里设定 f(n,k) 表示 n的k次方法和(∑i^k) ,通过计算得出f(n,1)=1+2+

2006-03-23 15:02:00 4647

原创 类加载器工具类:动态设置classpath,获得加载类列表等

下面的一个小工具类提供了对系统类加载器和扩展类加载器的动态控制能力.可以在程序中加入classpath,当然也可以获得类加载器加载的类列表,相信java的动态能力!package org.rut.core;import java.io.File;import java.io.PrintStream;import java.lang.reflect.Field;import java.lan

2006-03-21 18:42:00 7036 1

原创 堆结构的实现

包括最大值堆和最小值堆:接口:package org.rut.util.structure.heap;/** * @author treeroot * @since 2006-1-31 * @version 1.0 */public interface Heap {    /**     * return the top element of the heap     * @retur

2006-03-21 18:27:00 6015

原创 各种排序算法java实现

插入排序:package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/** * @author treeroot * @since 2006-2-2 * @version 1.0 */public class InsertSort implements SortUtil.Sort{   

2006-03-21 18:21:00 7629 2

原创 How is Internat Bank going?

     Whats Internat Bank?     Internate Bank is a Bank that the customers do their transaction on the internate!          Why do i use the Internate Bank?     Because it makes ours life and work mor

2005-10-20 13:21:00 4043

原创 javascript函数库:集合框架

/**collection.jsversion 1.2author  treerootsince   2005-5-24Classes:CollectionsArraysArrayListSortedList extends ArrayListHashMapHashSet*//****************CollectionsNOTE:sort() return a new List*****

2005-05-24 14:58:00 6257 1

原创 javascript函数库:core.js

/**core.jsversion 1.2author  treerootsince   2005-5-24*///ObjectObject.prototype.getClass=function(){ //var s=Object.prototype.toString.apply(this); //return s.match(//[object (/w+)/]/)[1]; //just wor

2005-05-24 14:56:00 4558

原创 如何理解数组的length?

Java中的数组其实也是一个对象,但是确实是一个特殊的对象,实在是太特殊了, 以致我们都不好把它多做对象处理。 1.数组是对象,继承自Object  唯一比Object多一个成员变量length,而且应该是public的。 2.java.lang.reflect.Array是final的,所以数组肯定不是它的子类  这个类用来动态生成数组或者操作数组(获得长度等). 

2005-01-22 18:16:00 9507 2

原创 Java与围棋

Java和围棋能有什么关系呢,怎么可能扯在一起。1.围棋是古代文化的象征,Java是现代文明的产物,这样似乎有点牵强。  时至今日,围棋还主要是以中日韩为主,Java也不过是几百种计算机编成  语言之一。2.因为我既喜欢围棋,又喜欢Java,而且还用Java实现围棋算法。这就更是胡闹,  就因为我一个人,怎么可以硬把这两个不相干的东西扯在一起。3.到底怎么扯到一起呢,他们都是艺术,这个似乎有点道理

2005-01-22 17:49:00 6244

原创 Java同步问题

这里的同步只对单个Java应用程序来说,至于数据库同步,文件同步等就不是这里讨论的问题了。 同步和多线程的关系1.没有多线程环境就不需要同步。2.即使有多线程环境也不一定需要同步。 为什么要同步:为了防止多个线程对同一数据的修改,所以需要同步,否则会造成数据不一致。Java提供了非常方便的多线程支持,所以说同步问题比较普遍,尤其是Servlet和JSP的线程安全问题特别明显。htt

2005-01-14 20:36:00 12851 6

原创 Java内存泄露问题

内存泄露很多人在谈论内存泄露问题,当然对于c/c++来说,这个应该是老掉牙的问题,但是很多Java人员也越来越多得讨论这个问题,我这里写个小结,希望对大家有一定的参考价值。 必须先要了解的1.c/c++是程序员自己管理内存,Java内存是由GC自动回收的。我虽然不是很熟悉C++,不过这个应该没有犯常识性错误吧。2.什么是内存泄露?内存泄露是指系统中存在无法回收的内存,有时候会造成内存不足或

2005-01-12 19:26:00 5839 12

原创 平衡二分堆的使用

java.util.Timer是一个用来调度后台任务的类,TimerTask就是一个任务。里面用了一个平衡二分堆的算法:/** * This class represents a timer task queue: a priority queue of TimerTasks, * ordered on nextExecutionTime.  Each Timer object has one o

2005-01-08 19:39:00 3983

转载 页面校验用通用js

/******************************************************    FileName:jsLibrary.jsCopyright  (c)  2003-xxxx *********公司技术开发部Writer:Nickcreate Date:2004-12-28Rewriter:Rewrite Date:Impact:****************

2005-01-04 12:38:00 3269

原创 Java类浏览器

package treeroot.reflect;import java.util.List;public interface Node { int CLASS=0x10000; int INTERFACE=0x01000; int CONSTRUCTOR=0x00100; int METHOD=0x00010; int FIELD=0x00001;  void setChilds(List

2004-12-29 09:08:00 4944 1

原创 数字表达式解析器

昨天匆忙写完的,估计还有bug,这里说明一点,对于parseInt没有直接使用parseDouble是不是有点重复,我不希望用浮点计算来牺牲性能!有空我再补充说明。package treeroot.util.parser;class Operation {  private int priority;  private Operation(int priority) {    this.p

2004-12-29 08:54:00 4406 1

原创 改进后的单词计数器

package treeroot.util.wordcount;/** * The class is the elment of the Word Set return by WordCount. * The instance have the word value and the apperance times. * NOTE:the word ignore the case, * so w

2004-12-29 08:47:00 4500

原创 开源:对象运行时大小参考实现(sizeof)

支持递归引用,唯一不支持的就是不等长数组,不过要支持这个也不难,两个原因不改进它:1.大部分数组都是等长的。2.这个东西实在没看出有什么实际应用,这个是主要原因。需要读者对反射和数组有比较深的认识:package treeroot.util;import java.lang.reflect.*;import java.util.*;/** * Compute the size of a R

2004-12-29 08:37:00 3326

原创 一个相当不错的地区代码级联实现

我不想多说什么,只想把这个提供给大家也给自己,客户端级连菜单如果数据量很大你必须考虑效率问题!! 这里不支持JavaScript,把下面的代码放在一个文件,存为htm就行了。function ListBoxItem(value, label, depend){ this.value = value; this.label = label; //下面这个在这里无用! th

2004-12-28 19:05:00 10941

原创 这段代码让你想到什么?

String s="";for(int i=0;i   s+=s+"hello";}你觉得上面的代码有什么问题,这个是我曾经犯过的错误,这么有意义的错误我一定要好好收藏。

2004-12-17 18:28:00 1541 1

原创 性能优化:==代替equals

很多人一定觉得这个题目老土,稍微有点基础的人都觉得比较弱智,没有什么好讨论的,因为这个问题讨论的太多了。不过你既然进来了,不妨看完,就算给个面子吧,几分钟而已,可能你会有点启发!很久没有写东西了,现在大部分人也不会关心程序的效率问题了,因为CPU总是闲着,内存总是空着。很多人都觉得对于基本类型用==,对于引用类型用equals(),为什么呢?对于引用类型如果可以用==代替equals(),

2004-12-17 13:03:00 3850

原创 Java单词计数器

花了一个中午搞定了一个单词计数器,可以按照字典和频率两种排序,功能还比较强大。package treeroot.util;//anthor treeroot//since  2004-12-3public class Word{ private String value; public Word(String value){  this.value=value.toLowerCase(); } p

2004-12-03 14:55:00 3521

原创 我的第一个Swing程序

利用反射机制获得JavaBean的属性,然后生成一个XML文件.//XmlFrame.javapackage xmlgen.gui;import java.awt.*;import javax.swing.*;public class XmlFrame extends JFrame{ public XmlFrame(){  this.setTitle("Xml Generator");  

2004-11-27 11:51:00 1775

原创 哈希崩溃及避免方法

先看下面的一个例子,如果你能毫不犹豫的全部答对,说明你对HashMap基本理解.import java.util.Map;import java.util.HashMap;import java.util.Set;import java.util.HashSet;class  HashFail{       public static void main(String[] args)     

2004-11-17 19:04:00 2284

原创 int和byte数组的转换

int转换成长度为4的byte数组,长度为4的byte数组合成一个int.static int bytes2int(byte[] b){         //byte[] b=new byte[]{1,2,3,4};          int mask=0xff;         int temp=0;        int res=0;        for(int i=0;i       

2004-11-17 15:29:00 2815

原创 wait,notify,sleep,join和线程同步问题(续)

昨天没有时间写完这篇,今天补上,前面只说明了wait和notify这两个方法,这里讨论一下sleep和join,说实在的这两个方法比wait和notify简单的多.http://blog.csdn.net/treeroot/archive/2004/11/10/175508.aspxsleep:Thread的静态方法,当前线程休眠一段时间,时间到了再恢复可运行状态,时间到了不一定就执行吧,还得

2004-11-11 12:43:00 2566 1

原创 提取英文中的单词

用正则表达式很简单String s="this is a test,   powerful split";String[] arr=s.split("[^a-zA-Z]+"); //6个单词的数组for(int i=0;i      System.out.println(arr[i]);

2004-11-11 08:58:00 3034

原创 wait,notify,sleep,join和线程同步问题

wait,notify,sleep,join这几个方法很常用,这里涉及到多线程和同步问题,这里稍微解释一下. 1.wait和notify这两个方法都是Object中的方法,放在一块是因为他们关系非常密切.wait就是等待这个对象的同步锁,不过调用这个方法必须先获得这个对象的同步锁,就这一点很多人就搞晕了.这里先解释一下这两个方法,然后给出一个小例子说明.wait:等待对象的同步锁,需要获得

2004-11-10 11:51:00 4996 5

原创 API解读:Thread

线程是一个和平台关系比较密切的概念,这里我们也不能看出它的具体实现,只能看一下它的表现了.public class Thread implements Runnablepublic final static int MIN_PRIORITY = 1;public final static int NORM_PRIORITY = 5;public final static int MAX_P

2004-11-10 10:54:00 1926

原创 我见过的最长的表达式

BitSet里的一个方法: private static int bitLen(int w) {        // Binary search - decision tree (5 tests, rarely 6)        return         (w           (w            (w             (w             (w          

2004-11-09 15:33:00 1900 4

原创 检查IP地址的正则表达式

这里用正则表达式我检查指定的字符串是否式一个IP地址,注意这里前缀0是不允许的,如果允许前缀0的话那问题就简单了好多,这个实现效率比较低下.boolean ipValid(String s){    String regex0="(2[0-4]//d)" + "|(25[0-5])";    String regex1="1//d{2}";    String regex2="[1-9]//d

2004-11-08 16:51:00 2856 4

转载 Java 2 引用类使用指南

原文:http://www-900.ibm.com/developerWorks/cn/java/j-refs/index.shtml学习如何有效地使用 SoftReference、WeakReference 和 PhantomReference级别:初级Peter Haggar([email protected])高级软件工程师,IBM 公司2003 年 1 月Jav

2004-11-08 09:28:00 1476

原创 String

public final class String implements java.io.Serializable, Comparable, CharSequence1.构造函数其实一般String都不用构造函数,直接用=号就可以了.a.常用的构造函数:public String(char value[]) public String(char value[], int offse

2004-11-05 17:54:00 1777

原创 13球称重问题Java实现

/** * 13球称重问题Java实现 * Copyright: Copyright (c) 2004 * @author treerot * @version 1.0 */public class ThirteenBall {  private static class Ball {    private int weight;    public int getWeight() {    

2004-11-02 18:11:00 1995

转载 Java的时间处理(续)

http://blog.csdn.net/cocia/archive/2001/10/28/6149.aspx

2004-11-02 13:21:00 1188

转载 计算Java日期

http://blog.csdn.net/cocia/archive/2001/10/28/6148.aspx

2004-11-02 11:33:00 1185

原创 GC测试

下面这段代码可以用来测试GC的工作情况,finalize方法是关键public class GCTest {   public static void main(String[] args) throws InterruptedException {    //runGC();    for(int i=0;i      newObj();    }    System.out.println

2004-10-29 19:28:00 1903 2

原创 TreeMap和TreeSet

TreeMap是红黑树算法的实现,实现了SortedMap接口,要注意的是它不在使用哈希表,存储方式是一个特殊的二叉树,有关红黑树:http://blog.csdn.net/treeroot/archive/2004/10/15/138431.aspx这篇文章介绍的不错,我之前没有听说过二叉树,我就是看这篇文章加上看一下TreeMap的源代码才搞懂红黑树算法的.这里不打算研究TreeMap的源

2004-10-28 18:38:00 3041

原创 LinkedHashMap和LinkedHashSet

LinkedHashMap也是一个HashMap,但是内部维持了一个双向链表,其实基本上和HashMap差不多.public class LinkedHashMap extends HashMap 利用LinkedHashMap可以获得一个和原来Map一样顺序的一份拷贝Map m=new LinkHashMap(old);LinkedHashSet更加简单,代码就非常简单,就是一些构造函数

2004-10-28 18:15:00 2329 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除