- 博客(110)
- 收藏
- 关注
原创 java类加载原理分析
未经同意,严禁转载! 这篇文章将比较深入的介绍java类加载原理和过程,虽然很多情况你都不需要了解类加载的过程,但是如果你希望了解java是如何工作的,或者希望定义自己的类加载器,就一定要了解类加载的过程,当然,无论你是否要参与类加载过程,了解这个过程对你都会有很大的帮助。本文希望通过一步一步的分析来说明类加载的过程,希望这
2006-07-22 22:04:00
13856
6
原创 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
6098
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
4710
原创 类加载器工具类:动态设置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
7118
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
6059
原创 各种排序算法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
7720
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
4118
原创 javascript函数库:集合框架
/**collection.jsversion 1.2author treerootsince 2005-5-24Classes:CollectionsArraysArrayListSortedList extends ArrayListHashMapHashSet*//****************CollectionsNOTE:sort() return a new List*****
2005-05-24 14:58:00
6334
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
4615
原创 如何理解数组的length?
Java中的数组其实也是一个对象,但是确实是一个特殊的对象,实在是太特殊了, 以致我们都不好把它多做对象处理。 1.数组是对象,继承自Object 唯一比Object多一个成员变量length,而且应该是public的。 2.java.lang.reflect.Array是final的,所以数组肯定不是它的子类 这个类用来动态生成数组或者操作数组(获得长度等).
2005-01-22 18:16:00
9631
2
原创 Java与围棋
Java和围棋能有什么关系呢,怎么可能扯在一起。1.围棋是古代文化的象征,Java是现代文明的产物,这样似乎有点牵强。 时至今日,围棋还主要是以中日韩为主,Java也不过是几百种计算机编成 语言之一。2.因为我既喜欢围棋,又喜欢Java,而且还用Java实现围棋算法。这就更是胡闹, 就因为我一个人,怎么可以硬把这两个不相干的东西扯在一起。3.到底怎么扯到一起呢,他们都是艺术,这个似乎有点道理
2005-01-22 17:49:00
6310
原创 Java同步问题
这里的同步只对单个Java应用程序来说,至于数据库同步,文件同步等就不是这里讨论的问题了。 同步和多线程的关系1.没有多线程环境就不需要同步。2.即使有多线程环境也不一定需要同步。 为什么要同步:为了防止多个线程对同一数据的修改,所以需要同步,否则会造成数据不一致。Java提供了非常方便的多线程支持,所以说同步问题比较普遍,尤其是Servlet和JSP的线程安全问题特别明显。htt
2005-01-14 20:36:00
12957
3
原创 Java内存泄露问题
内存泄露很多人在谈论内存泄露问题,当然对于c/c++来说,这个应该是老掉牙的问题,但是很多Java人员也越来越多得讨论这个问题,我这里写个小结,希望对大家有一定的参考价值。 必须先要了解的1.c/c++是程序员自己管理内存,Java内存是由GC自动回收的。我虽然不是很熟悉C++,不过这个应该没有犯常识性错误吧。2.什么是内存泄露?内存泄露是指系统中存在无法回收的内存,有时候会造成内存不足或
2005-01-12 19:26:00
5919
11
原创 平衡二分堆的使用
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
4053
转载 页面校验用通用js
/****************************************************** FileName:jsLibrary.jsCopyright (c) 2003-xxxx *********公司技术开发部Writer:Nickcreate Date:2004-12-28Rewriter:Rewrite Date:Impact:****************
2005-01-04 12:38:00
3320
原创 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
5006
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
4468
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
4540
原创 开源:对象运行时大小参考实现(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
3372
原创 一个相当不错的地区代码级联实现
我不想多说什么,只想把这个提供给大家也给自己,客户端级连菜单如果数据量很大你必须考虑效率问题!! 这里不支持JavaScript,把下面的代码放在一个文件,存为htm就行了。function ListBoxItem(value, label, depend){ this.value = value; this.label = label; //下面这个在这里无用! th
2004-12-28 19:05:00
11068
原创 这段代码让你想到什么?
String s="";for(int i=0;i s+=s+"hello";}你觉得上面的代码有什么问题,这个是我曾经犯过的错误,这么有意义的错误我一定要好好收藏。
2004-12-17 18:28:00
1575
1
原创 性能优化:==代替equals
很多人一定觉得这个题目老土,稍微有点基础的人都觉得比较弱智,没有什么好讨论的,因为这个问题讨论的太多了。不过你既然进来了,不妨看完,就算给个面子吧,几分钟而已,可能你会有点启发!很久没有写东西了,现在大部分人也不会关心程序的效率问题了,因为CPU总是闲着,内存总是空着。很多人都觉得对于基本类型用==,对于引用类型用equals(),为什么呢?对于引用类型如果可以用==代替equals(),
2004-12-17 13:03:00
3920
原创 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
3608
原创 我的第一个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
1815
原创 哈希崩溃及避免方法
先看下面的一个例子,如果你能毫不犹豫的全部答对,说明你对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
2376
原创 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
2870
原创 wait,notify,sleep,join和线程同步问题(续)
昨天没有时间写完这篇,今天补上,前面只说明了wait和notify这两个方法,这里讨论一下sleep和join,说实在的这两个方法比wait和notify简单的多.http://blog.youkuaiyun.com/treeroot/archive/2004/11/10/175508.aspxsleep:Thread的静态方法,当前线程休眠一段时间,时间到了再恢复可运行状态,时间到了不一定就执行吧,还得
2004-11-11 12:43:00
2606
原创 提取英文中的单词
用正则表达式很简单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
3136
原创 wait,notify,sleep,join和线程同步问题
wait,notify,sleep,join这几个方法很常用,这里涉及到多线程和同步问题,这里稍微解释一下. 1.wait和notify这两个方法都是Object中的方法,放在一块是因为他们关系非常密切.wait就是等待这个对象的同步锁,不过调用这个方法必须先获得这个对象的同步锁,就这一点很多人就搞晕了.这里先解释一下这两个方法,然后给出一个小例子说明.wait:等待对象的同步锁,需要获得
2004-11-10 11:51:00
5041
4
原创 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
1964
原创 我见过的最长的表达式
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
1938
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
2893
4
转载 Java 2 引用类使用指南
原文:http://www-900.ibm.com/developerWorks/cn/java/j-refs/index.shtml学习如何有效地使用 SoftReference、WeakReference 和 PhantomReference级别:初级Peter Haggar(haggar@us.ibm.com)高级软件工程师,IBM 公司2003 年 1 月Jav
2004-11-08 09:28:00
1519
原创 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
1808
原创 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
2082
转载 Java的时间处理(续)
http://blog.youkuaiyun.com/cocia/archive/2001/10/28/6149.aspx
2004-11-02 13:21:00
1221
原创 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
1977
2
原创 TreeMap和TreeSet
TreeMap是红黑树算法的实现,实现了SortedMap接口,要注意的是它不在使用哈希表,存储方式是一个特殊的二叉树,有关红黑树:http://blog.youkuaiyun.com/treeroot/archive/2004/10/15/138431.aspx这篇文章介绍的不错,我之前没有听说过二叉树,我就是看这篇文章加上看一下TreeMap的源代码才搞懂红黑树算法的.这里不打算研究TreeMap的源
2004-10-28 18:38:00
3082
原创 LinkedHashMap和LinkedHashSet
LinkedHashMap也是一个HashMap,但是内部维持了一个双向链表,其实基本上和HashMap差不多.public class LinkedHashMap extends HashMap 利用LinkedHashMap可以获得一个和原来Map一样顺序的一份拷贝Map m=new LinkHashMap(old);LinkedHashSet更加简单,代码就非常简单,就是一些构造函数
2004-10-28 18:15:00
2370
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人