JDK7

谈谈Java的try..catch...

匆匆过客 提交于 2019-12-05 04:16:39
我们在写Java的try..catch的时候,往往需要在最后加上finally子句关闭一些IO资源,比如 InputStream is; try{ is=openInputStream(); // do something }catch(IOException e){ e.printStaceTrace(e); }finally{ try{ is.close(); }catch(IOException e ){ } } 但是在使用这种模式时,即使是Java老手,偶尔也会犯一些错误。比如上面这段代码,当openInputStream()函数在执行过程中抛出异常,那么变量is的值仍为null,此时执行is.close()会抛出NullPointerException. 由于NullPoiterException不是IOException的子类,因此它不能被catch块捕获,而是直接往调用层抛出去. 一种改进的写法就是在关闭流的时候先进行非空判断,但这样代码会显得很啰嗦。个人认为比较优雅的写法是直接调用commons-io包提供的IOUtils.closeQuitely()方法关闭流(或者自己封装一个closeQuitely()方法)。 使用这种写法还有一种好处,就是当遇到关闭多个IO资源时不容易出错,比如下面这段代码: InputStream is; OutputStream os ;

【转】JDK 7 中的 Fork/Join 模式

[亡魂溺海] 提交于 2019-12-03 08:02:07
介绍 随着多核芯片逐渐成为主流,大多数软件开发人员不可避免地需要了解并行编程的知识。而同时,主流程序语言正在将越来越多的并行特性合并到标准库或者语言本身之中。我们可以看到,JDK 在这方面同样走在潮流的前方。在 JDK 标准版 5 中,由 Doug Lea 提供的并行框架成为了标准库的一部分(JSR-166)。随后,在 JDK 6 中,一些新的并行特性,例如并行 collection 框架,合并到了标准库中(JSR-166x)。直到今天,尽管 Java SE 7 还没有正式发布,一些并行相关的新特性已经出现在 JSR-166y 中: Fork/Join 模式; TransferQueue,它继承自 BlockingQueue 并能在队列满时阻塞“生产者”; ArrayTasks/ListTasks,用于并行执行某些数组/列表相关任务的类; IntTasks/LongTasks/DoubleTasks,用于并行处理数字类型数组的工具类,提供了排序、查找、求和、求最小值、求最大值等功能; 其中,对 Fork/Join 模式的支持可能是对开发并行软件来说最通用的新特性。在 JSR-166y 中,Doug Lea 实现 ArrayTasks/ListTasks/IntTasks/LongTasks/DoubleTasks 时就大量的用到了 Fork/Join 模式。读者还需要注意一点,因为

centos6.5 下安装jdk7,tomcat7

拥有回忆 提交于 2019-11-30 21:33:22
jdk下载链接: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.rpm tomcat下载链接: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.65/bin/apache-tomcat-7.0.65.tar.gz 或者: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://apache.fayea.com/tomcat/tomcat-7/v7.0.65/bin/apache-tomcat-7.0.65.tar.gz 安装JDK, 注意操作系统的位数, 64 or 32

CentOS6.3+JDK7+Tomcat7.0+MySQL5.5 开发环境的搭建

﹥>﹥吖頭↗ 提交于 2019-11-29 17:34:39
第一步:安装CentOS6.3 关于安装教程,本文没有附上,请自行解决! 附上下载地址:http://www.centos.org (官网下载) 第二步:安装JDK7(jdk-7u7-linux-x64-rpm.bin) 1.在安装之前要卸载自带的JDK版本 # rpm -qa|grep jdk ← 查看jdk的信息 # yum -y remove xxx ← 卸载( xxx 为显示的版本信息) 2.安装 # chmod 777 jdk-7u7-linux-x64-rpm.bin ← 修改权限为可执行 # ./jdk-7u7-linux-x64-rpm.bin ← 选择yes同意上面的协议(在路径/opt下) # rpm -ivh jdk-7u7-linux-x64.rpm ← 选择yes直到安装完毕 3.配置环境变量 # vi /etc/profile ← 编辑profile文件 在profile文件的最后面添加如下: export JAVA_HOME= /xxx/xxx ← java安装的绝对路径 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin # source /etc