java7笔记
1 switch case 增加字符串类型,原理根据字符串hashcode以及string.equal比较
2 数值字面量改进
新增二进制数值字面量 0b000004,在数值中间新增下划线方便阅读2000_000
3 异常处理
增加addSuppressed 能够在触发异常后,通过该方法将finally中的异常添加保存进去
改进了catch子句的语法,允许在其中指定多种异常
4 try-with-resource语句
管理一个资源
public class CustomeResource implements AutoCloseable {
@Override
public void close() throws Exception {
// TODO Auto-generated method stub
System.out.println("进行资源释放");
}
public void useCustomeResource() throws Exception{
try(CustomeResource resource=new CustomeResource()){
System.out.println("使用资源");
}
}
}
管理两个资源
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);
}
}
5 在虚拟机中增加对动态语言的支持
MethodType
针对原来的 invokespecial invokevirtual invokeinterface invokestatic增加了更加灵活的invokedynamic指令
6
6.1数据库访问
6.1.1 try-with-resource语句使用在数据库资源释放上
6.1.2 对RowSet的实现对象的创建做了更新,工厂方式创建,ResultSet中getObject方法时,可以直接把结果类型传递进去等
6.1.3 数据库连接超时与终止,在connection接口中新增setNetworkTimeout和abort两个方法
6.2
6.2.1基本类型包装类增加了compare方法,同时字符串内部化技术(包含相同字符串引用的相同的内部对象)被扩大到-128~127
6.2.2通过新增ProcessBuilder.Redirect类对进程的输入和输出重定向方式进行了统一,提供了两种重定向类型,一种是原来的管道式,一种是继承式,其他三种是与文件相关的
6.2.3禁止了Thread的clone方法
6.3
6.3.1java.util中新增工具类Objects,Objects.compare相对对象的compare方法会对null进行判断处理;Objects.equals;Objects.deepEqual;Objects.hash和Objects.hashCode结果不同;Objects.toString
6.3.2正则表达式支持命名捕获分组,原来对捕获分组的引用只支持出现顺序的数字,现在可以给每个分组添加名字;对正则表达式新增\x来直接表示,\x和\u使用方式类似,只是允许表示的范围更广
6.3.3java.util.zip 允许选择压缩时缓存的中间结果的输出方式,也支持显示的制定压缩文件的文件名和注释所用的字符集;XMLEncoder增加构造方法,可以更加精细的控制保存行为
6.3.4获取beaninfo时,定义获取过程中包含哪些类的信息或者获取类中的哪些信息,java7后可以同时配置使用两项配置功能
7 多线程
7.1 java.util.concurrent包新增fork/join框架,类似map/reduce,目的是更好的利用多核和多处理器并行处理;在fork/join框架中,
区别于别的框架的在某个子问题遇阻时会处于等待状态该框架会主动查找其他尚未运行的子问题来执行,另外在每个子问题中应该避免使用sychonized关键词或其他方式进行同步,
也不应该使用阻塞式I/O操作或过多的访问共享变量;唯一的同步只应该发生在子问题和创建它的父问题之间
7.2 新增多阶段线程同步工具,Phaser类的特点是把多个线程协作执行的任务划分成多个阶段,所提供的比以前的倒数闸门和循环屏障强
7.3 ThreadLocalRandom类中的随机数是使用ThreadLocal类来实现的,避免了竞争问题
java7笔记的更多相关文章
- [笔记][Java7并发编程实战手冊]3.8 并发任务间的数据交换Exchanger
[笔记][Java7并发编程实战手冊]系列文件夹 简单介绍 Exchanger 是一个同步辅助类.用于两个并发线程之间在一个同步点进行数据交换. 同意两个线程在某一个点进行数据交换. 本章exchan ...
- [笔记][Java7并发编程实战手冊]系列文件夹
推荐学习多线程之前要看的书. [笔记][思维导图]读深入理解JAVA内存模型整理的思维导图文章里面的思维导图或则相应的书籍.去看一遍. 能理解为什么并发编程就会出现故障. Java7并发编程实战手冊 ...
- [笔记][Java7并发编程实战手冊]3.4 等待多个并发事件的完毕CountDownLatch倒计数闭锁
[笔记][Java7并发编程实战手冊]系列文件夹 简单介绍 本文学习CountDownLatch 倒计数闭锁. 本人英文不好.靠机器翻译,然后有一段非常形象的描写叙述,让我把它叫为倒计数 用给定的计数 ...
- Java7编程高级进阶学习笔记
本书PDF 下载地址: http://pan.baidu.com/s/1c141KGS 密码:v6i1 注:本文有空会跟新: 讲述的是jdk7的内容: 注关于java 更详细的内容请进入:<Ja ...
- 《深入理解Java7核心技术与最佳实践》读书笔记(1.1)---Project Coin介绍
OpenJDK中的Coin项目(Project Coin)的目的就是为了收集对Java语言的语法进行增强的建议.在Coin项目开始之初,曾经广泛地向社区征求提议.在短短的一个月时间内就收到将近70条提 ...
- 《Java7并发编程实战手册》读书笔记
一.线程管理 1.线程的创建和运行 创建线程的2种方式: 继承Thread类,并覆盖run()方法 创建一个实现Runnable接口的类.使用带参数的Thread构造器来创建Thread对象 每个Ja ...
- Java7编程高手进阶读书笔记—集合框架
定义:Java集合框架API是用来表示和操作集合的统一框架,它包含接口.实现类.以及帮助程序员完成一些编程的算法 作用: ●编程更加省力,提高城程序速度和代码质量 ● 非关联的API提高互操作性 ● ...
- Java7编程 高级进阶学习笔记--嵌套类
定义: 在一个类中定义的类叫做嵌套类. 作用: 1.允许对相关类进行逻辑分组 2.增强了代码的封装性 3.使代码具有更强的可读性和维护性 使用方式: package com.cmz.baseTest; ...
- Java7编程高手进阶读书笔记--final学习
这段时间终于有了一些自己的时间,在网上淘了一本书把java学习下,顺便记下每日的学习心得 工作快两年多了,才知道基础的东西永远看的时候都有一个新的体验,今天中午看了下final,把自己炒的代码贴在这以 ...
随机推荐
- jQuery学习笔记(一)
1.什么是jQuery? jQuery是一个JavaScript函数库. jQuery是一个轻量级的"写的少,做的多"的JavaScript库. 2.为什么要使用jQuery? 目 ...
- 第四组 12月8号sprint会议
会议时间:12月8号,16:30会议地点:蛙鸣湖旁小树林 会议进程: 1.首先对到场人员进行点名 2.对程序主要功能进行讨论,每人都可以自由发言,然后分配每个成员的任务,并决定实现第一个功能: ...
- Redis 缓存 + Spring 的集成示例
参考网址:http://blog.csdn.net/defonds/article/details/48716161
- C# 遍历文件夹下所有子文件夹中的文件,得到文件名
假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中using System.Data;using System.Drawing;using System.Linq;using Syst ...
- NOT IN查询效率低,用它的等效写法提高效率。
最近在处理大数据量导入的时候,使用OPENROWSET将Excel导入到临时表中之后,需要对数据进行唯一性验证.这时候发现使用NOT IN严重影响效率,一条sql可能执行10分钟甚至更久.尝试改变写法 ...
- MongoDB学习:(一)MongoDB安装
MongoDB学习:(一)MongoDB安装 MongoDB介绍: 直接百科了: MongoDB安装: 1:下载安装: MongoDB安装:https://www.mongodb.com/do ...
- mvc 4 ActionFilterAttribute 特性,进行权限验证
权限验证: /// <summary> /// 管理员身份验证 /// </summary> public class BasicAuthenticationAttribute ...
- Android程序crash处理
Android程序crash处理 时间 2014-11-24 13:45:37 CSDN博客 原文 http://blog.csdn.net/allen315410/article/details ...
- selenium-打开IE浏览器遇到问题记录
[使用selenium打开IE浏览器步骤]: 1.在IE浏览器上运行测试脚本,首先需要下载IEDriverServer.exe,放在IE浏览器的安装目录且同级目录下. 2.参考代码如下: import ...
- c++父类和子类转化致命的代码错误
最近在工作中,出现了严重的代码错误,对象的基类和子类的继承,代码大致如下: class A { }; class B : public A { } void main() { A* a;(用于子类对象 ...