黑马程序员技术交流社区

标题: 1.7的一个新特性,try-finally的,处理异常的,好用 [打印本页]

作者: ysunday    时间: 2013-11-22 21:18
标题: 1.7的一个新特性,try-finally的,处理异常的,好用
本帖最后由 ysunday 于 2013-11-22 22:05 编辑

据说jdk1.7有几个好用的特性。说下自己认为好用的两个
1.<>这个,菱形泛型,给我们省调了一个单词的事
例子:
1.7之前
List<String> list = new ArrayList<String>();
1.7:
List<String> list = new ArrayList<>();
虽说不是什么大的改动,但是确实少写了一个单词

2.自己认为给我们的用处最大try(代码){代码}
1.7之前异常处理这么做
  1. public class NewTry {
  2.         public static void main(String[] args) throws IOException{
  3.                 FileInputStream fis = null;
  4.                 FileOutputStream fos = null;
  5.                 try{
  6.                         //当然这里你可以写复制文件阿,操作读取数据阿.这里简单写的
  7.                         int len = fis.read();
  8.                         System.out.println(len);
  9.                 }finally{//这个finally只是为了确保关掉fis,但很可能关fis时还会有异常
  10.                                 //所以还有下边的那个finally
  11.                         try{//检测并关闭fis
  12.                                 if(fis != null)
  13.                                         fis.close();
  14.                         }finally{//这个finally为了确保关fos
  15.                                 if(fos != null){
  16.                                         fos.close();
  17.                                 }
  18.                         }
  19.                 }
  20.         }

  21. }
复制代码
1.7
  1. public class NewTry {

  2.         //这里在函数抛异常是为了让调用者知道这个函数有异常,如果你处理了,相当于把异常
  3.         //隐藏了,对开发不利
  4.         //可能跟毕老师讲的可能不同,我忘了,各人有个人的见解.
  5.         public static void main(String[] args) throws IOException{
  6.                 // TODO Auto-generated method stub
  7.                 try(//看清楚,这里是个小括号,在小括号里边创建流什么的
  8.                                 FileInputStream fis = new FileInputStream("abc.txt");
  9.                                 FileOutputStream fos = new FileOutputStream("haha.txt");
  10.                 ){//大括号写针对流的各种操作.这里又简写了.
  11.                                 int len = fis.read();
  12.                                 System.out.println(len);
  13.                 }
  14.         }

  15. }
  16. /*
  17. *其实1.7的对象只要是实现了autoclose接口的就可以放在try后边的小括号
  18. *里边,然后为什么不用关流了呢
  19. *是因为打括号里边的代码执行完后,会自动调用小括号里边包含的类的close方法
  20. *省了不少事 ,至于怎么自动调用的,我是不关心了.只管用
  21. * */
  22. */
复制代码
3.jdk1.7竟然开始支持python,perl等动态语言了,这对喜欢python的同志个好事
这个新特性到现在还不会用。

4.每次让写copy文件的时候就特别头疼,1.7之后就好了,多了个包
java.nio.file.Files,这个包下的方法绝对是文件操作的利器。快看看吧

5.GUI编程也可以编辑任意形状的窗口,可以创建透明度自定义的了,这个包忘了。

作者: 赵晓海    时间: 2013-11-22 22:39
真有心{:soso_e179:}
作者: 天下    时间: 2013-11-23 00:06
你不会已经熟练掌握了jdk1.7的新特性吧。
厉害
作者: 枫儿    时间: 2013-11-24 10:49
研究得够深入~{:soso__3669389859068460655_3:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2