来自: http://java.chinaitlab.com   开篇,还是得说说 ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明:   "^The": 开头一定要有"The"字符串;   "of despair$": 结尾一定要有"of despair" 的字符串;   那么,   "^abc$": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配。   "notice": 匹配包含notice的字符串。   你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁 ...
2008-03-06

验证页面值是否修改了

关键字: java, javascript
JS验证页面的值有没有修改过... function initPage() { for(i=0;i<document.all.tags("select").length;i++) { var select = document.all.tags("select").item(i); if(select.defaultValue == undefined) select.defaultValue = select.options[select.selectedIndex].value; } } func ...
2008-03-06

进制转换

关键字: java 进制
java中进行二进制,八进制,十六进制,十进制间进行相互转换 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toString() 八进制转成十进制 Integer.valueOf("876",8).toString() 二进制转十进制 Integer.valueOf("0101",2).toString() java.lang.Inte ...
2008-02-29

JDK版本下载

关键字: jdk, eclipse
JDK: http://java.sun.com/products/archive/ Eclipse: http://archive.eclipse.org/eclipse/downloads/index.php
2007-12-04

关于换行

关键字: 换行
java取消换行,CSS强制换行...竟然忘记了....汗! java 取消换行代码 public class Formatter {          public static void main(String...args) {           try   ...
2007-11-23

Tiger学习 之 Thread

关键字: java 5.0
处理未捕获的异常...见 Thread.UncaughtExceptionHandler. Thread-Safe的Collection,见java.util.conurrent包下 1.ConcurrentHashMap,不同步化所有的读取方法.处理掉很多锁定与threading的问题,将内部的hashtable区段间隔开来,可以在不同的线程写入不同的区段,同时对不同区段操作,使用与HashMap相同 2.CopyOnWriteArrayList,解决不常被更新但是常读取的array的方法,解除了同步化,能够允许任意数目的并发读取,对于写入实际是创建一个新的array拷贝,然后在分配给原 ...
2007-11-22

Tiger学习 之 Formatter

关键字: java 5.0
关于Formatter,参照API...Formatter类 通过创建Formatter的示例进行... //Formatter f = new Formatter("FileName"); StringBuilder s = new StringBuilder(); Formatter f = new Formatter(s); f.format("hello: %s", s); 撰写格式化的输出...见farmat方法.... 一些便利的format方法: 引用 String.format(format, args); System.out.printf(format, ar ...
2007-11-22

Tiger学习 之 import static

关键字: java 5.0
静态的import,没什么好说的...不过建议在使用超出三次时才使用 //可以是静态类、枚举、方法、成员 import static java.lang.System.out; import static java.util.Arrays.sort; import static java.lang.Math.*;//多个成员,不建议使用,除非是Enum... importing多个member 如果是相同的名字的类,成员,那是不行的...编译出错. 但是如果是method,例如重载...那么编译器会根据参数判断调用那一个方法...很cool(如果参数一样-->NG)
2007-11-16

Tiger学习 之 for/in

关键字: java 5.0
一.抛弃Iterator for/in语句排除了使用Iterator类的使用。 List<String> list = new ArrayList<String>(); list =getList(); for(String string: list){ System.out.println("======: "+ string ); } for(Iterator i = list.iterator(); i.hasNext();){ String string = (String)i.next(); System.out ...
2007-11-09

Tiger学习 之 Annotate

关键字: java 5.0
主要有四种的标准的meta-annotation,都在java.lang.annotation的package中... 1.@Target指定那个程序单元可以有其所定义的annotation (程序单元:class.interface,enum,field,method,parameter,constructor,variable package,annotation。参看ElementType类) 需要import(java.lang.annotation.ElementType;java.lang.annotation.Target;)两个类 引用 //只能用于TYPE和METHOD的 ...
2007-11-09

Tiger学习 之 自定义Annotation

关键字: java 5.0
创建自己的Annotation通过@interface关键字来实现,如 引用 //没有member的Annotation public @interface MyAnnotation {} //有member的Annotation public @interface MyAnnotation { String value();//创建一个隐含没有且主体的abstract方法,编译器同时创建一个同名的member变量。 } //有多个memberAnnotation public @interface MyAnnotation { public enum Type {CLASS, INTE ...
2007-11-09

Tiger学习 之 Annotation介绍

关键字: java 5.0
Annotation是通过定义好了的metadata机制来陈述类、方法、变量的各种变化的方法. 在 Tiger中有三种标准的annotation类型 Override:java.lang.Override是用来指示有一个method,它override掉它自己的superclass的method 引用 @Override public String toString(){...} 确保你override某个方法...如果方法加上可@Override,但是没有override某个方法...那么编译器提示错误 Deprecated:java.lang.Deprecated是指出某一个m ...
2007-11-02

Tiger学习 之 可变参数

关键字: java 5.0
可变参数,解决Method有不同个数参数的overload问题... 如何创建一个可变长度的参数,看代码: 引用 public void vararg(String varOne, String varTwo, String...strings ) {} 编译器会把它解析为"public void vararg(String varOne, String varTwo, String[] strings) {}",将"..."创建成一个<argument type>的array。 调用很简单...(零或以上多个参数) 引用 vararg("one","tow"); //可以不传参数 ...
2007-11-02

Tiger学习 之 Conditional 与Unboxing

关键字: java 5.0
Conditional=ternary operator(三目运算符)...用"?"来表示,那么Tiger有什么不一样呢? 引用 Boolean case1 = true; int s = case1? new Integer(1) : 1; 在Tiger之前,以上代码是不会通过的...因为在":"的两边的数值类型必须是一样的... 在Tiger,是OK的,因为是会unbox的..并且只要两个对象有交集,就可以了...如: 引用 CharSequence cs = case1? (CharSequence)"Hello" : (CharSequence)new StringBuffer("G ...
java 99% 是对象处理的,还有1%是primitive(int,short,char...等字面值)的处理,与之相对的wrapper class 是Integer,Short,Character...等,因此,总需要要在primitive和wrapper之间不断的转换... Tiger来使用boxing和unboxing来解决这个问题...自动执行这些转换...即autoboxing和auto-unboxing.. 1.primitive to wrapper 引用 //Tiger之前定义个Integer必须如下 Integer i = new Integer(100); //Tig ...
在Enum加方法跟在class中加方法的是摸一样的.. 引用 public enum AntStatus { INSERT, DELETE, UPDATE;//必须加上分号";",表示enum这一节的值结束 private String enumObject; //声明变量必须放在enum值的后面,否则编译器提示错误 AntStatus(){//默认是private,可以显示什么是private(多余),不能是public和protected enumObject = "Enum....."; } public static String getString() ...
之 Map -> EnumMap 使用EnumMap能够确保不会弄乱顺序来赋初始值,或不经意地造成enumerated类型重新排列顺序 用Enum来当Keyset....Map的index...看代码 引用 //定义一个enum public enum AntStatus { INSERT, DELETE, UPDATE } //定义一个EnumMap EnumMap<AntStatus,String> eMap = new EnumMap<AntStatus,String>(AntStatus.class); eMap.put(AntStatus.DELETE, " ...
Tiger之前的switch只能运用 int、short、char、bye值(不能用String很麻烦...),现在支持Enum... 引用 switch (te.getEn()) { //te.getEn() 取得一个Enum对象,进行case case A : System.out.println("Hello A"); case B : System.out.println("Hello B"); //奇怪吧?关于 case A,case B,不能把Enum加上,如 EnumFirst.A 会出错的...所以要小心,必须case到所有的值(如果需要) default: S ...
取出Enum的所有值,直接看代码... 引用 public enum EnumFirst {A, B, C, D, F, INCOMPLETE} EnumFirst ef[] = EnumFirst.values();//取出来的是EnumFirst实例数组 System.out.print("EnumFirst values are: "); for (int i = 0; i <ef.length; i++) { System.out.print(ef[i] + " ");//自动调用toString类型,输出字符串 } 输出结果: 引用 EnumFirst value ...
Enum,Tiger新引进的类型,之前只能由class和interface来创建新类型... 主要摆脱 通过“public static final”的变量声明...<常量> 创建、使用的方式跟class类似,标识符一般用大写,如 引用 public enum EnumFirst {A, B, C, D, F, INCOMPLETE} 一些特性... Enum是class Enum继承过java.lang.Enum Enum没有public构造函数 Enum值是public、static、 final的 Enum可以用 == 和equal 比较 ....API 行内Inline声明 ...
2007-10-29

Tiger学习 之 撰写泛型<generic>

关键字: java 5.0
写一个支持泛型的类,真的很简单,呵呵,看代码 引用 public class Generic<E> { //private static List<E> staticList = new ArrayList<E>(); 不能这样写,编译出错,因为静态变量的实例共享的。 protected List<E> list; public Generic(){ list = new ArrayList<E>(); } } 这样就OK了,"E" 代表一个参数类型,可以用任何字母、单词来代替,不过一般用一个大写字母。 限制参数类型,也很简单,只要让你的类型变 ...
2007-10-29

Tiger学习 之 类型转换<generic>

关键字: java 5.0
了解一个概念 擦除(erasure) 泛型基本上完全在编译器中实现,由编译器执行的时候类型检查和类型推断,保证类型安全,然后生成普通的非泛型的字节码(然后在生成字节码之前将其清除,使其跟不用泛型的写法生成的字节代码基本一样)。这种实现技术 -- 擦除(erasure) 泛型的转换是基于对象本身的基础类型的,而不是基于泛型的参数化,所以 引用 List<Integer> list1 = new ArrayList<Integer>(); list1.add(1); List<Integer> list2 = list1; 是基于list1 转换的,不是基于I ...
方法的参数化...看代码 1->方法参数 引用 List list = new ArrayList(); list.add("Hello"); list.add("World"); setList(list); public static void setList(List<String> list) { //确保值能传入参数化相同的对象的List,或没有参数化的List } List list = new ArrayList(); 可以嘛?可以,但是,小心会有在运行是出现java.lang.ClassCastException 异常...应该写成List<St ...
2007-10-29

Tiger学习 之 Type-Safe<generic> ...

关键字: java 5.0
泛型<Generic>之类型安全<Type-Safe> 1->List(collection,数组...类似) 在构造对像的时候就可以知道该对象操作的是什么样的数据<对象>类型,类型安全且省去烦人的转换类型。 通过Object<E> = new Object<E>();来实现,E占位符 引用 //Tiger之前 List list = new ArrayList(); list.add("String"); list.add(new Integer(111)); list.add(111);//提示错误,不能存放primitiv值,Tiger可以, //操作 ...
2007-10-26

Tiger学习 之 StringBuilder

关键字: java5.0
几个相关类:Character,String,StringBuffer,StringBuilder Character,单个字符的操作,JDK5.0新增了很多新方法,都是对应unicode4.0的 String,不可变类,不能被继承,对String值的改变都会引起新的String对象生成(例如通过"+"相加字符串)。 StringBuffer,可变类,对其改变不会引起新的对象生成(例如通过 append 相加字符串),对字符串的操作性能比String高很多。 StringBuilder,可变类,StringBuffer有的方法StringBuilder都有,唯一区别是StringBui ...
2007-10-26

Tiger学习 之 Unicode

关键字: java5.0
先来了解什么是Unicode和一些概念? Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 codepoint 代表特定字符的数字。例如 0x3c0 是 π codepoint 引用 int s = 0x3c0; System.out.println((char)s); 输出:π Tiger之前的Java版本支持Unicode 3.0,所有Unicode字符容于16位(也就是一个char),而Tiger改为支持Unicode4.0(大部分新字符是汉字),它定义 ...
2007-10-26

Tiger学习 之 Override

关键字: java5.0
先弄清Overload和Override的概念(都是Java多态性的不同表现) Overload 重载(同一个类中有相同的方法名) 注意点: 1.重载可以通过相同方法名不同的参数样式表现(不同的参数类型,不同的参数个数和不同的参数顺序) 2.不能通过访问权限、返回类型、抛出的异常进行重载(方法的异常类型和数目不会对重载造成影响) 3.如果是继承的重载,父类中的方法的访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。 Override覆盖(子类跟父类【或接口】有相同的方法名) 注意点: 1.子类中方法名和父类的方法名必须相同,参 ...
2007-10-25

Tiger学习 之 Queue

关键字: java5.0
Queue:interface,先进先出,通过LinkedList类实现 offer方法,添加元素。类似add方法,但是offer返回boolean,不能添加时不会抛出异常 poll方法,删除(首端)元素,类似remove方法,但是poll返回boolean,不能删除时不会抛出异常 引用 Queue queue = new LinkedList(); queue.offer("a"); queue.offer("b"); queue.offer("c"); queue.remove(); System.out.println("queue values are: " + queue); ...
2007-10-25

Tiger学习 之 Arrarys

关键字: java5.0
toString方法:直接输出数组的各个元素的值 引用 String[] str1 = {"a","b","c"} ; System.out.println("str1 values are : "+Arrays.toString(str1)); 输出:str1 values are : [a, b, c] deepToString方法:直接输出多维数组的各个元素的值 引用 String[][] str2 = {{"a","aa"},{"b","bb"},{"c","cc"}}; System.out.println("str2 values are: "+Ar ...
2007-10-22

一句话Java设计模式

关键字: 设计模式
今天在电脑找到一份《Java设计模式》(不知道什么时候下的了)文档,看完后发现就是接口、抽象类的应用(可是要用得好不容易呀),并且好像这些模式还真是喜欢搞一些第三者,插在中间。哦,传说中的降低耦合性。嘿嘿,不过主要还是掌握其中的思想,有时间看看大部头..。下面是我看完《Java设计模式》文档后各个模式的一句话体会. Factory 找老婆(创建对象),通通到工厂去 Prototype 不就是clone吗? Builder 复杂点,你可以找两个老婆的地方 Singleton 一夫(Class)一妻(Object)制 Facade 男厕所,女厕所, ...
linxizeng
搜索本博客
我的相册
存档
最新评论