码迷,mamicode.com
首页 > 编程语言 > 详细

Java 5-11新特性的整理(转)

时间:2019-08-27 17:02:30      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:set   str   monk   线程安全   十进制   text   自动   rar   ret   

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新特性的整理(转)

标签:set   str   monk   线程安全   十进制   text   自动   rar   ret   

原文地址:https://www.cnblogs.com/yanzige/p/11417993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!