zoukankan      html  css  js  c++  java
  • Java 5-11新特性的整理(转)

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

    作者:拔剑少年

    简书地址:https://www.jianshu.com/p/38985b61ea83
    博客地址: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)

     

     

     

     

  • 相关阅读:
    SETI ACdream
    字符串野指针 百练2681
    mvc架构的简单登录系统,jsp
    servlet修改后无效,仍然还是修改之前的效果
    mysql安装,数据库连接
    the process android.process.acore has stopped或the process com.phone。。。。
    软件测试
    vim实用技巧
    ubuntu终端白屏的解决方法
    vim相关资料
  • 原文地址:https://www.cnblogs.com/yanzige/p/11417993.html
Copyright © 2011-2022 走看看