Java7一些知识

来源:互联网 发布:天猫比淘宝有什么优势 编辑:程序博客网 时间:2024/05/26 14:09

语法新特性

1.Switch使用字符串,之前只能使用与整数兼容的类型

  swicth(str){

     case “男”:

       sex =“先生”;

  }

2.数字字面量改进

  int i = 500_000_000; 使用下划线分割,只能放在数字之间

  int i = 0b101; 用0b表示二进制

3.优化的异常处理

  try{}

     catch(ExceptionA  | ExceptionB e){  不能出现重复的异常,一个异常不能是另一个的子异常

  }

4.try-with-resource

资源分为内存资源及非内存资源,流处理、数据库连接等JVM自动回收不了,所以需要手动释放资源。

进行资源管理 使代码简洁,紧凑,需要实现AutoCloseable接口

5.优化可变参数的方法调用可以用数组传递可变参数

public void fn(int ...args){ } 

int []arr = {1,2,7,5};

fn(arr);

语言的动态性

1.脚本语言的支持

ScriptEngineManager engineManager = new ScriptEngineManager();

ScriptEngine engine = engineManager.getEngineByName("javascript");

执行脚本功能、实现java与脚本的交互使用

2.反射API

Class存储了对象的所有的信息,获取Class的后,就能获取到对象的方法、变量等信息

3.动态代理(安全性、信息过滤处理)

代理模式:代理类、委托类

静态代理中:每一个代理类只能为一个接口服务,这样一来程序开发中必然会产生过多的代理

Cglib(Code Generation Library) 是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java

类与实现Java接口JDK的动态代理有一个限制,就是使用动态代理的对象必须实现一个或多个接口,若没实现接口,需要用Cglib

4.动态语言支持

Groovy,JavaScript,Scala等满足Class格式,JVM语法格式

Java I/O

1.字节、字符输入输出流

InputStreamReader字符字节转换流

过滤流:封装底层流,增强功能

缓冲流:BufferedReader 带缓冲区

DataInputStrem数据流支持各种数据类型

2.缓冲区

           内存中开辟的一段区间,用来解决内存设备与外部设备数据交互速度慢、效率低的问题

3.通道 是可异步的,非阻塞的

4.NIO2

    Path、文件访问

 java7其它更新

1.数据库方面的改进

Connection,Statement等实现了AutoCloseable接口,可使用try-with-resource

使用schema来区分表、视图

数据库连接超时与终止 setNetworkTimeout abort

RowSet实现提供者 强RowSet按照JavaBeans来处理

2.Objects使用

提供了比较器比较

进行空判断

3.国际化Unicode方面的更新,图形界面的更新,正则表达式的改进


0 0
原创粉丝点击