jdk知识

java.util.Arrays

  • binarySearch([], key):  使用二分搜索法来在指定数组中搜索指定值,返回搜索值的索引
    toString([]): 打印数组内容
    deepToString([]): 深层打印数组内容,适用于多维数组
    equals([], []): 数组比较
    deepEquals([], []): 深层比较,适用于多维数组
    fill([], val): 给数组的每个元素赋值
    sort([]): 对数组升序排序

Unicode
Tiger前的Java版本支持Unicode 3.0,所有Unicode字符容于16位(一个char)
而Tiger改为支持Unicode4.0,它定义了不能容于16位的字符,这些字符不能容于一个char
这时我们用int类型的codePoint来表示该字符
codepoint是一个代表特定字符的数字,如0x3C0是π这个符号的codepoint

  

静态import

     静态方法的import,  Enum元素的import

 

java.util.Formatter.format("Remaining account balance: $%.2f", balance);  

 

线程安全:
HashMap-------〉ConcurrentHashMap
ArrayList-------〉CopyOnWriteArrayList
大并发量读取时:java.util.concurrent
    BlockingQueue、Callable、Executor、Semaphore...
 
 
Annotation
Target 指定所定义的annotation可以用在哪些程序单元上
如果Target没有指定,则表示该annotation可以使用在任意程序单元上

@Target({ElementType.ANNOTATION_TYPE,   

         ElementType.CONSTRUCTOR,   

         ElementType.FIELD,   

         ElementType.LOCAL_VARIABLE,   

         ElementType.METHOD,   

         ElementType.PACKAGE,   

         ElementType.PARAMETER,   

         ElementType.TYPE})   

public @interface TODO {}  

Retention指出Java编译期如何对待annotation
annotation可以被编译期丢掉,或者保留在编译过的class文件中
在annotation被保留时,它也指定是否会在JVM加载class时读取该annotation

@Retention(RetentionPolicy.SOURCE)  // Annotation会被编译期丢弃   

public @interface TODO1 {}   

@Retention(RetentionPolicy.CLASS)   // Annotation保留在class文件中,但会被JVM忽略   

public @interface TODO2 {}   

@Retention(RetentionPolicy.RUNTIME) // Annotation保留在class文件中且会被JVM读取   

public @interface TODO3 {}  

 

类型通配符,类型限制

public void printList(List<? extends Number> list, PrintStream out) throws IOException {   

  for (Iterator<? extends Number> i = list.iterator(); i.hasNext(); ) {   

    out.println(i.next().toString());   

  }   

 

enum是类型安全

 

变长参数,vararg

public Guitar(String... features)   

public static void main(String... args)  

}  

posted on 2011-08-23 11:00  乐恩茂  阅读(58)  评论(0)    收藏  举报

导航