一、java发展史
1995.5.23 Oak语言改名为java,sun正式发布java 1.0版本
1996.1.23 JDK 1.0发布,java语言第一个正式版本运行环境 主要包括:java虚拟机 Applet AWT
1997.2.19 JDK1.1发布,包括技术:jar文件格式,jdbc,JavaBeans,RMI,内部类,反射等
1998.12.4 JDK1.2发布, 这个版本中区分了 三个方向(企业开发的J2EE,移动终端开发的J2ME,桌面应用开发的J2SE),包含技术:EJB,java plug-in,java idl ,Swing,Collections集合类等
1999.4.27 HotSpot虚拟机发布,JDK1.2中包含之后成为JDK默认的虚拟机
2000.5.8 JDK1.3发布,提供了java 2D api,添加了数学计算和Timer API等
2002.2.13 JDK1.4发布,发布内容主要包含:正则表达式,异常链,NIO,日志类,XML解析器等
2004.9.30 JDK1.5发布,技术包含:自动装箱,泛型,动态注解,枚举,可变长参数,froeach循环等(1.5是官方声明可以支持windows9X平台的最后一个jdk版本)
2006.12.11 JDK1.6发布,技术包含:动态语言支持,提供编译API,微型http服务器API | 虚拟机改动:锁与同步、垃圾收集、类加载等
2009.2.19 JDK1.7发布,(书中未详细说明,主要怀念了sun公司的动荡时期,2009.4.20 Oracle收购SUN公司,一个巨头落幕……)
后面内容为搜索引擎提供 ????????????????
技术包含:switch中添加对String类型的支持,
添加二进制表示
数字中可加入分隔符
异常处理 ①Throwable类添加addSuppressed方法和getSuppressed方法。支持原始异常中加入被抑制的异常。 异常抑制:在try和finally中同一时候抛出异常时,finally中抛出的异常会在异常栈中向上传递,而try中产生的原始异常会消失。 在Java7之前的版本号,能够将原始异常保存。在finally中产生异常时抛出原始异常:
public void read(String filename) throws BaseException { FileInputStream input = null; IOException readException = null; try { input = new FileInputStream(filename); } catch (IOException ex) { readException = ex; //保存原始异常 } finally { if (input != null) { try { input.close(); } catch (IOException ex) { if (readException == null) { readException = ex; } } } if (readException != null) { throw new BaseException(readException); } } } 在Java7中的版本号,能够使用addSuppressed方法记录被抑制的异常: public void read(String filename) throws IOException { FileInputStream input = null; IOException readException = null; try { input = new FileInputStream(filename); } catch (IOException ex) { readException = ex; } finally { if (input != null) { try { input.close(); } catch (IOException ex) { if (readException != null) { //此处的差别 readException.addSuppressed(ex); } else { readException = ex; } } } if (readException != null) { throw readException; } } } ②catch子句能够同一时候捕获多个异常 public void testSequence() { try { Integer.parseInt("Hello"); } catch (NumberFormatException | RuntimeException e) { //使用'|'切割,多个类型,一个对象e } } ③try-with-resources语句 Java7之前须要在finally中关闭socket、文件、数据库连接等资源; Java7中在try语句中申请资源,实现资源的自己主动释放(资源类必须实现java.lang.AutoCloseable接口,一般的文件、数据库连接等均已实现该接口,close方法将被自己主动调用)。 public void read(String filename) throws IOException { try (BufferedReader reader = new BufferedReader(new FileReader(filename))) { StringBuilder builder = new StringBuilder(); String line = null; while((line=reader.readLine())!=null){ builder.append(line); builder.append(String.format("%n")); } return builder.toString(); } } try子句中能够管理多个资源: public void copyFile(String fromPath, String toPath) throws IOException { try ( InputStream input = new FileInputStream(fromPath); OutputStream output = new FileOutputStream(toPath) ) { byte[] buffer = new byte[8192]; int len = -1; while( (len=input.read(buffer))!=-1 ) { output.write(buffer, 0, len); } } }