今天有个人问我,我还真的知道一点点。你们都用过吗?
一: 泛型
1. List<Integer> list = new ArrayList<Integer>();
list.add(new Integer(100));
Integer a = list.get(0);
2. Map<String,Integer> m = new HashMap<String,Integer>();
m.put("a",1);
m.put("b",2);
m.put("c",3);
int b = m.get("b");
3. 自定义
class A<G> {
//定义属性
G a;
//定义构造函数
A(G a){
this.a = a;
}
void print(){
System.out.println(a);
}
public static void main(String[] args) {
A<String> a1 = new A<String>("a1");
a1.print();
A<Integer> a2 = new A<Integer>(1);
a2.print();
}
}
4. 用extends和super来控制泛型的类型范围
class A <B extends List>{ };
表示B只能是List的子类或子接口A<String> a= new A<String>();就是错误的。
如果用super的话就是表示父类或者父接口了。
5. 循环
void print(List<Integer> a) {
for (Integer i : a) {
System.out.println(i);
}
}
void print(List<?> a) {
for (Integer i : a) {
System.out.println(i);
}
}
二:可变参数(Vararg)
public class program {
static void test(int... ints){
for (int i = 0; i < ints.length; i++){
System.out.println(ints[i]);
}
}
public static void main(String[] args) {
test(10, 20, 30, 40, 50);
}
}
三:枚举(Enum)
public class program {
enum Color {
Red,
White,
Yellow
}
public static void main(String[] args) {
Color[] cs = Color.values();
for(Color c : cs){
System.out.println(c);
}
}
}
四:静态导入(Static Import)
使用静态导入可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名。
import static java.lang.Math.*;
public class program {
public static void main(String[] args) {
int i = (int)(random()*10);
System.out.println(i);
}
}
五:格式化输出
public class program {
public static void main(String[] args) {
System.out.printf("Integer=%d String=%s", 13, "abc");
}
}
六:标注(Annotation)
标注(Annotation)就是在程序中加上一些说明,容器在调用这些类,方法的时候就知道怎么处理了。
例如下面是在seasar框架中使用的例子
@StrutsActionForm(name = "ownerForm") //can replace the struts config file
public class OwnerForm{}
七:自动类型包装与解包装
public static void main(String[] args) {
// Boxing
int i = 13;
Integer o = i;
// UnBoxing
Integer x = new Integer(13);
int y = x;
}
八:新的线程模型和并发库 Thread framework
Tiger引进大量全新的并发性功能,更好的支持mutilthread
HashMap的替代者ConcurrentHashMap和ArrayList的替代者CopyOnWriteArrayList让我们用的放心、舒心、省心
在大并发量读取时采用java.util.concurrent包里的一些类会让大家满意
BlockingQueue、Callable、Executor、Semaphore...
本文介绍了Java中的新特性,包括泛型的使用方法、可变参数、枚举类型、静态导入、格式化输出、标注、自动类型包装与解包装,以及新的线程模型和并发库等内容。
8万+

被折叠的 条评论
为什么被折叠?



