Java 5-11新特性的整理(转)
Java 5-11新特性的整理(转) 作者:拔剑少年 简书地址:https://www.jianshu.com/u/dad4d9675892 Java 5 1?泛型?(Generics) List<Integer> list = new ArrayList<Integer>(16); Map<String,Object> map = new HashMap<String,Object>(32); 2?增强for循环(Enhanced for Loop) List<Integer> list = new ArrayList<Integer>(16); Map<String,Object>(32); list.add(1); list.add(2); list.add(3); list.add(4); for (Integer integer : list) { System.out.println(integer); } map.put("name","zhangsan"); map.put("age",20); map.put("sex",1); map.put("department","Source"); for (Entry<String,Object> entry : map.entrySet()) { System.out.println("key:"+entry.getKey()+",value:"+entry.getValue()); } 3?自动拆装箱(Autoboxing/Unboxing ) 八大基本类型和它们的包装类型能够自动的转换。包装类是引用类型,在使用==和equels比较时应当注意一下!
? ? ? ? ? ? ? 4、枚举(Typesafe Enums) 枚举是一种实现线程安全的单例模式的好方法 public enum TypeEnum { OnLine(1,"线上模式"),OffLine(2,"线下模式"); private int code; private String name; TypeEnum(int code,String name){ this.code = code; this.name = name; } } 5?可变参数(Varargs) 语法:(type... arguments) 可变参数本质仍然是用一个数组存储参数,只是java隐藏了这一过程。需要注意的是如果一个方法声明中含有可变参数,那必须放在最后一个位置。 String[] strings = new String[]{"1","2","3","4"}; testVarargs(strings); private static void testVarargs(String... strings){ System.out.println("可变参数长度:"+strings.length+",可变参数类型:"+strings.getClass().getSimpleName()); for (String string : strings) { System.out.println("可变参数的值分别为:"+string); } } 打印结果 可变参数长度:4,可变参数类型:String[] 可变参数的值分别为:1 可变参数的值分别为:2 可变参数的值分别为:3 可变参数的值分别为:4 6?静态导入(Static Import) 通过import类来使用类里的静态变量或方法(直接通过名字,不需要加上 //单个导入 import static java.lang.Math.PI; //批量导入 import static java.lang.Math.*; 7?注解(Annotations)。关键字 //注释注解的注解又叫做元注解 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyAnnotations { //注解内可以添加方法,也可以不添加 //注解方法的返回值只能是基本类型,String,Class类,枚举,注解,可以有默认值。 int id(); String name() default "whh"; Class classType(); TestEnum enumType(); } 8?新的线程模型和并发库( (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |