38
回答
Java 7 的 7 个新的 “酷” 特性
注册华为云得mate10,2.9折抢先购!>>>   

Java 7 即将在本月底发布了,先来看 Java 7 中的一些不错的新酷特性吧:

1. switch 中使用字符串变量

public void testStringSwitch(String direction) {
  switch (direction) {
     case "up":
	 y--;
     break;

     case "down":
	 y++;
     break;

     case "left":
	 x--;
     break;

     case "right":
	 x++;
     break;

    default:
	System.out.println("Invalid direction!");
    break;
  }
}

2. 简化泛型对象创建

// Java 7 以前版本
Map<String,Map<String,int>>m=new HashMap<String, Map<String,int>>();

// Java 7
Map<String, Map<String, int>> m = new HashMap<>();

3. 多异常处理

try {
    Class a = Class.forName("wrongClassName");
    Object instance = a.newInstance();
} catch (ClassNotFoundException | IllegalAccessException |
   InstantiationException ex) {
   System.out.println("Failed to create instance");
}

4. 资源的自动释放

try (BufferedReader in=new BufferedReader(new FileReader("test.txt")))
{
    String line = null;
    while ((line = in.readLine()) != null) {
	System.out.println(line);
    }
} catch (IOException ex) {
    ex.printStackTrace();
}

5. 文件 IO API 的改进

下面是列出一个文件中所有行并打印的方法

List<String> lines =  Files.readAllLines(
FileSystems.getDefault().getPath("test.txt"), StandardCharsets.UTF_8);

for (String line : lines) System.out.println(line);

6. 通过 invokedynamic支持非 Java 语言(详情)

7. JLayerPane (详情)

举报
红薯
发帖于7年前 38回/3K+阅
共有38个评论 最后回答: 7年前

Map<String, Map<String, int>> m = new HashMap<>(); 这种方式在google的工具集合中好像有。

貌似是把一些繁杂的写法,简化了。


资源自动释放是不是意味着不用写close了?
--- 共有 7 条评论 ---
答复哈看着这么像.NET的语法呢~ 7年前 回复
烟头@freish: 实现了某个接口的才能自动关闭,一般的文件流和网络连接、数据库连接jdk已经内置实现了 好像是AutoClose 7年前 回复
freish@红薯: 难道是所有资源都能自动关闭?譬如数据库连接?socket连接,或者自定义的某个资源,不能这么智能吧 7年前 回复
dargonernice 7年前 回复
穿着马甲的鸟如果是这样的话,那真的很不错。因为给内存回收的形式一样了。以前觉得很别扭的一个事情就是你在Java里头new了一个东西,不需要delete,但是你open了一个东西,却需要close。 7年前 回复

@红薯 这个时间差

--- 共有 2 条评论 ---
JoeyBlue可以实现资源释放的必须实现autoclose和一个其他的什么接口(接口里有个close()方法),就是调用其close()方法来释放资源的 7年前 回复
3602也得像微博一样自动刷了- - ~~~ 7年前 回复
switch终于支持String了,前两天还被C#的哥们鄙视之
--- 共有 2 条评论 ---
hans汉斯重构中要去除switch和if 7年前 回复
superkingswitch 用的还是比较少,也不够灵活,真如有的仁兄所说,有生之年好像都没有用过switch语句,这一点点的改动真的感觉不值一提 7年前 回复
顶部