A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵鹏 中级黑马   /  2015-10-21 22:37  /  510 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从网上搜索了JDK1.7的新特性,对我们应该有些 用处吧,比如面试的时候
JDK1.6特性还没学完也没理解(学的有点慢,好多都没用过),JDK1.7版本又出来了,又有它自己的一些特性,在网上看了看学习了一下,和大家分享一下。
1,switch中可以使用字串了

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. 语法上支持集合,而不一定是数组

final List<Integer> piDigits = [ 1,2,3,4,5,8 ];

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)
JDK1.7新特性
1.对Java集合(Collections)的增强支持
在JDK1.7之前的版本中,Java集合容器中存取元素的形式如下:
以List、Set、Map集合容器为例:

    //创建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={"key":1}; //向Map集合中添加对象
      int value=map["key"]; //从Map集合中获取对象

2.在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 ;
}


3.数值可加下划线
例如:int one_million = 1_000_000;


4.支持二进制文字
例如:int binary = 0b1001_1001;


5.简化了可变参数方法的调用
当程序员试图使用一个不可具体化的可变参数并调用一个*varargs* (可变)方法时,编辑器会生成一个“非安全操作”的警告。

评分

参与人数 3黑马币 +40 收起 理由
nextrogue + 10 很给力!
李振在黑马 + 10 很给力!
andre + 20 很给力!

查看全部评分

2 个回复

倒序浏览
不错。谢谢。
回复 使用道具 举报
互相学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马