现在的位置: 首页 > 综合 > 正文

JDK1.7的新特性

2012年03月11日 ⁄ 综合 ⁄ 共 2093字 ⁄ 字号 评论关闭

1、Switch中可以使用String了

在之前的版本中是不支持在Switch语句块中用String类型的数据的,这个功能在C#语言中早已被支持,好在JDK1.7中加入了。

String s = "test";   
switch (s) {   
  case "test" :   
     System.out.println("test");  
  case "test1" :   
    System.out.println("test1"); 
    break ;   
  default :   
    System.out.println("break"); 
    break ;   
 }

2、泛型实例化类型自动推断

List<String> tempList = new ArrayList<>();

3、对Java 集合( Collections )的增强支持

在JDK1.7之前的版本中,Java集合容器中存取元素的形式如下。ListSetMap集合容器为例:

//创建List接口对象  
List<String> list=new ArrayList<String>();  
list.add("item"); //用add()方法获取对象  
String Item=list.get(0); //用get()方法获取对象  

//创建Set接口对象  
Set<String> set=new HashSet<String>();  
set.add("item"); //用add()方法添加对象  

//创建Map接口对象  
Map<String,Integer> map=new HashMap<String,Integer>();  
map.put("key",1); //用put()方法添加对象  
int value=map.get("key")  

在JDK1.7 中,摒弃了 Java 集合接口的实现类,如: ArrayList 、 HashSet 和 HashMap 。而是直接采用 [] 、{} 的形式存入对象,采用 [] 的形式按照索引、键值来获取集合中的对象,如下: 

List<String> list=["item"]; //向List集合中添加元素  
String item=list[0]; //从List集合中获取元素  
Set<String> set={"item"}; //向Set集合对象中添加元素  
Map<String,Integer> map={name:"xxx",age:18}; //向Map集合中添加对象  
int value=map["age"]; //从Map集合中获取对象  

4、新增一些取环境信息的工具方法

File System.getJavaIoTempDir() // IO临时文件夹
File System.getJavaHomeDir() // JRE的安装目录
File System.getUserHomeDir() // 当前用户目录
File System.getUserDir() // 启动java进程时所在的目录
……

5、 Boolean类型反转,空指针安全,参与位运算 

//类型反转,空指针安全
Boolean Booleans.negate(Boolean booleanObj) //True => False , False => True, Null => Null
//参与位运算
boolean Booleans.and(boolean[] array) 
boolean Booleans.or(boolean[] array) 
boolean Booleans.xor(boolean[] array) 
boolean Booleans.and(Boolean[] array) 
boolean Booleans.or(Boolean[] array) 
boolean Booleans.xor(Boolean[] array)

6、两个char间的equals

boolean Character.equalsIgnoreCase(char ch1, char ch2)

7、安全的加减乘除

int Math.safeToInt(long value)
int Math.safeNegate(int value)
long Math.safeSubtract(long value1, int value2)
long Math.safeSubtract(long value1, long value2)
int Math.safeMultiply(int value1, int value2)
long Math.safeMultiply(long value1, int value2)
long Math.safeMultiply(long value1, long value2)
long Math.safeNegate(long value)
int Math.safeAdd(int value1, int value2)
long Math.safeAdd(long value1, int value2)
long Math.safeAdd(long value1, long value2)
int  Math.safeSubtract(int value1, int value2)

8、数值可加下划线

int one_million = 1_000_000;

9、支持二进制文字

int binary = 0b1001_1001;

 

抱歉!评论已关闭.