随笔 - 45, 文章 - 2, 评论 - 11, 引用 - 0
数据加载中……

commons-lang源码学习之ArrayUtils

1、比较两个对象是否类型相同

array1.getClass().getName().equals(array2.getClass().getName()

2、倒置(reverse)数组中的元素

         int i = 0;
        int j = array.length - 1;
        Object tmp;
        while (j > i) {
            tmp = array[j];
            array[j] = array[i];
            array[i] = tmp;
            j--;
            i++;
          }

3、得到数组的容器类型

array.getClass().getComponentType();

4、lastIndex()这类方法的实现

for (int i = startIndex; i >= 0; i--) {
              if (objectToFind.equals(array[i])) {
                  return i;
              }
}

5、isEmpty()这类方法的实现只要一句话,isNotEmpty方法依此推

return array == null || array.length == 0;

6、将两个数组合并addAll

       boolean[] joinedArray = new boolean[array1.length + array2.length];
       System.arraycopy(array1, 0, joinedArray, 0, array1.length);
       System.arraycopy(array2, 0, joinedArray, array1.length, array2.length);

7、将新元素加入到数组中

            int arrayLength = Array.getLength(array);
            Object newArray = Array.newInstance(array.getClass().getComponentType(), arrayLength + 1);
            System.arraycopy(array, 0, newArray, 0, arrayLength);
            return newArray;

8、获得数组长度的方法

int arrayLength = Array.getLength(array);

9、以反射的方式获得数组对象

Array.newInstance(array.getClass().getComponentType(), arrayLength + 1)

10、将某一元素从数组中移除

Object result = Array.newInstance(array.getClass().getComponentType(), getLength(array)- 1);
       System.arraycopy(array, 0, result, 0, index);
       if (index < length - 1) {
           System.arraycopy(array, index + 1, result, index, length - index - 1);
       }

posted @ 2011-03-08 15:01 jack zhai 阅读(792) | 评论 (0)编辑 收藏

泛型知识

1、泛型是给java编译器使用的,在源文件经过编译后,编译器会将类型信息去掉,所以

test

2、可以绕过编译器的类型信息检查,而直接加入对象

test

3、泛型通配符

test

4、限定通配符上边界,限定通配符上边界

test

test

5、自定义泛型方法

test

6、类级别泛型

test

7、通过反射获得泛型的实际类型参数

test


 

posted @ 2011-03-05 19:45 jack zhai 阅读(88) | 评论 (0)编辑 收藏

对传入字符进行排列组合并进行md5编码,最后写入文件

Combinations
md5Util

IO工具包

md5Util


 

posted @ 2011-03-03 13:17 jack zhai 阅读(300) | 评论 (0)编辑 收藏

对象的创建过程《Think in java》读书笔记

假设有一个Dog类

1、当首次创建Dog的对象时(构造器可以看成静态方法),或者Dog类的静态方法/静态域首次被访问时,java解释器必须查找类路径,以定位Dog.class文件
2、然后载入Dog.class,有关静态初始化的所有动作都会执行。因此,静态初始化的所有动作都会执行。因此,静态初始化只在Class对象首次加载的时候进行一次。
3、当用new Dog()创建对象的时候,首先将在堆上为Dog类分配足够的存储空间。
4、这块存储空间会被清零,这就看上去地将Dog对象中所有基本类型数据都设置成了默认值,而引用则被设置成了null。
5、执行所有出现于字段定义处的初始化动作。
6、执行构造器。

posted @ 2011-02-23 16:17 jack zhai 阅读(120) | 评论 (0)编辑 收藏

类的内部,变量的定义先后顺序决定变量初始化的顺序

1、在类的内部,变量的定义先后顺序决定变量初始化的顺序,它们将会在任何方法(构造函数)被调用前被初始化

 1package cc.text;
 2
 3public class Dog {
 4    
 5    Cat c1 = new Cat(1) ; ;
 6    Cat c2 = new Cat(2) ;
 7    public Dog(){
 8        c1 = new Cat(1) ;
 9    }

10    public void foo(){
11        System.out.println("dog woo!");
12    }

13    Cat c3 = new Cat(3) ;
14    
15    public static void main(String[] args) {
16        Dog d = new Dog() ;
17        d.foo() ;
18    }

19}

20class Cat{
21    public Cat(int i){
22        System.out.println("ini cat"+ i);
23    }

24}

25


posted @ 2011-02-23 16:07 jack zhai 阅读(200) | 评论 (0)编辑 收藏

方法重载

a、区分方法的重载有:

1、参数顺序

public void info(int i, String str);

public void info(String str, int i);

2、以返回值区分重载方法

void f(){}

int f(){return 1;}

当int i = f();时就会调用int f(){return i;}方法

b、基本类型的重载

1、基本类型从一个“较小”的类型自动提提升成“较大”的类型

2、如果找不到有char型的方法,就会把char型提升为int型

posted @ 2011-02-23 13:41 jack zhai 阅读(123) | 评论 (0)编辑 收藏

使用Dbcp和DbUtils的简单实例

     摘要: 这个类是用OSChina红薯老大的。 package com.dbutilTest; import java.sql.Connection; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import javax....  阅读全文

posted @ 2011-02-22 00:02 jack zhai 阅读(62) | 评论 (0)编辑 收藏

面向对象学习之狗门代码

Bark,狗叫声类

BarkRecognizer,狗叫识别器

狗门

遥控器

测试类

posted @ 2010-12-21 12:01 jack zhai 阅读(160) | 评论 (0)编辑 收藏

spring框架下使用hibernateTemplate

在spring配置文件中加入:

spring配置文件

posted @ 2010-12-17 21:43 jack zhai 阅读(126) | 评论 (0)编辑 收藏

Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2所需要的jar包列表

jar包名称

所在位置

说明

antlr-2.7.6.jar

hibernate/lib/required

解析HQL

aspectjrt

spring/lib/aspectj

AOP

aspectjweaver

..

AOP

cglib-nodep-2.1_3.jar

spring/lib/cglib

代理,二进制增强

common-annotations.jar

spring/lib/j2ee

@Resource

commons-collections-3.1.jar

hibernate/lib/required

集合框架

commons-fileupload-1.2.1.jar

struts/lib

struts

commons-io-1.3.2

struts/lib

struts

commons-logging-1.1.1

单独下载,删除1.0.4(struts/lib)

struts

spring

dom4j-1.6.1.jar

hibernate/required

解析xml

ejb3-persistence

hibernate-annotation/lib

@Entity

freemarker-2.3.13

struts/lib

struts

hibernate3.jar

hibernate

 

hibernate-annotations

hibernate-annotation/

 

hibernate-common-annotations

hibernate-annotation/lib

 

javassist-3.9.0.GA.jar

hiberante/lib/required

hibernate

jta-1.1.jar

..

hibernate transaction

junit4.5

   

mysql-

   

ognl-2.6.11.jar

struts/lib

 

slf4j-api-1.5.8.jar

hibernate/lib/required

hibernate-log

slf4j-nop-1.5.8.jar

hibernate/lib/required

 

spring.jar

spring/dist

 

struts2-core-2.1.6.jar

struts/lib

 

xwork-2.1.2.jar

struts/lib

struts2

commons-dbcp

spring/lib/jarkata-commons

 

commons-pool.jar

..

 

struts2-spring-plugin-2.1.6.jar

struts/lib

 

posted @ 2010-12-15 09:53 jack zhai 阅读(3648) | 评论 (2)编辑 收藏

仅列出标题
共5页: 上一页 1 2 3 4 5 下一页