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)

Java 5-11新特性的整理(转)的更多相关文章

  1. JDK 5 ~ 11 新特性倾情整理

    为了大家对JDK有一个全面的了解,下面我为大家整理了JDK5~11的所有关键新特性! 先看一下JDK的版本迭代图: 注:   OpenJDK和JDK区别  GPL协议通用性公开许可证(General ...

  2. [转载] C++11新特性

    C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百 ...

  3. Java 9和Java 10的新特性

    http://www.infoq.com/cn/news/2014/09/java9 Java 9新特性汇总 继2014年3月份Java 8发布之后,Open JDK加快了开发速度, Java 9的发 ...

  4. C++ 11学习和掌握 ——《深入理解C++ 11:C++11新特性解析和应用》读书笔记(一)

    因为偶然的机会,在图书馆看到<深入理解C++ 11:C++11新特性解析和应用>这本书,大致扫下,受益匪浅,就果断借出来,对于其中的部分内容进行详读并亲自编程测试相关代码,也就有了整理写出 ...

  5. [转] Java 8的新特性

    简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...

  6. Java 8的新特性—终极版

    作者:杜琪[译] 原文链接:http://www.jianshu.com/p/5b800057f2d8 1. 简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本 ...

  7. JDK 5 ~ 10 新特性倾情整理!

    JDK 5 ~ 10 新特性倾情整理! 最近连 JDK11都在准备发布的路上了,大家都整明白了吗?也许现在大部分人还在用6-8,8的新特性都没用熟,9刚出不久,10-11就不用说了. 为了大家对JDK ...

  8. Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结

    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...

  9. java8 新特性精心整理

    前言 越来越多的项目已经使用 Java 8 了,毫无疑问,Java 8 是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和 JVM 等方面的十多个新特 ...

随机推荐

  1. Dubbo中的IoC实现

    Dubbo IOC 是通过 setter 方法注入依赖.Dubbo 首先会通过反射获取到实例的所有方法,然后再遍历方法列表,检测方法名是否具有 setter 方法特征.若有,则通过 ObjectFac ...

  2. 微信支付报调用支付JSAPI缺少参数: sign

    检查后台返回参数中没有paySign字段

  3. Lua 学习之基础篇一<Lua 运算符>

    引言 由于刚接触lua,个人觉得接触一门新语言,就要一定要对基础的部分做一个快速了解. 于是参考网上相关资料吸收并整理下来作为笔记,模糊的时候用来回顾一下. 这些部分基本都是经过自己手动测试梳理过,没 ...

  4. 约瑟夫问题O(n)/O(mlogn)

    题面 略 题解 约瑟夫问题.编号000~n−1n-1n−1,每次拿第mmm个. O(n)O(n)O(n):f[n]f[n]f[n]表示幸存的人的编号,f[n]=(f[n−1]+m)%nf[n]=(f[ ...

  5. python类内置方法之__call__

    在python中自定义类时,如果该类实现了一个特殊方法__call__(),那么该类的实例则变成一个可调用的实例对象 如下 In [1]: class A():# 自定义一个A ...: def __ ...

  6. 使用JSP/Servlet技术开发新闻发布系统---JSP数据交互(二)

    JSP内置对象application application对象 JSP常用的内置对象 对象的作用域 作用的分类 对象的作用域 page作用域 实例 //页面1 <% String name = ...

  7. javascript权威指南第13章 事件示例代码

    html 部分 <!DOCTYPE html> <html> <head> <title>Event Bubling Example</title ...

  8. POI之SXSSFWorkbook大量数据导出至excel

    一:简介          SXSSFWorkbook是用来生成海量excel数据文件,主要原理是借助临时存储空间生成excel,          SXSSFWorkbook专门处理大数据,对于大型 ...

  9. .NET项目 - sqlserver 连接字符串

    服务器本地连接: <connectionStrings> <add name="db" connectionString="Data Source=lo ...

  10. jQuery相关方法9----事件相关

    一.事件冒泡和阻止事件冒泡 <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></s ...