Java 5-11新特性的整理(转)
Posted yanzige
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 5-11新特性的整理(转)相关的知识,希望对你有一定的参考价值。
Java 5-11新特性的整理(转)
作者:拔剑少年
简书地址:https://www.jianshu.com/u/dad4d9675892
博客地址:https://it18monkey.github.io
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> map = new HashMap<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比较时应当注意一下!
数据类型 | 包装类 | 字节长度 | 默认值 | 有效位 |
byte | Byte | 1 | 0 | -128~127 |
short | Short | 2 | 0 | -32768~32767 |
int | Integer | 4 | 0 | -2^31-1~2^31 |
long | Long | 8 | 0l或0L | -2^63~2^63-1 |
float | Float | 4 | 0.0f或0.0F | 24(二进制)=7~8(十进制) |
double | Double | 8 | 0.0 | 53(二进制)=10~11(十进制) |
char | Character | 2 | u0000 | |
boolean | Boolean | 1 | false |
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)。关键字@interface
。
//注释注解的注解又叫做元注解 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyAnnotations //注解内可以添加方法,也可以不添加 //注解方法的返回值只能是基本类型,String,Class类,枚举,注解,可以有默认值。 int id(); String name() default "whh"; Class classType(); TestEnum enumType();
8 新的线程模型和并发库(java.util.concurrent
)
以上是关于Java 5-11新特性的整理(转)的主要内容,如果未能解决你的问题,请参考以下文章