Java7 新特性
2016-04-19 15:28
363 查看
摘要
switch中使用string泛型实例化类型自动推断
二进制数字表达方式
使用下划线对数字进行分隔表达,例如 1_322_222
同时捕获多个异常处理
自动资源管理
-
1、switch中使用string:
public void test(String s) { switch (s) { case "aaa": System.out.println("aaa"); break; case "bbb": System.out.println("bbb"); break; case "ccc": System.out.println("ccc"); break; default: break; } }
2、泛型实例化类型自动推断:
List<String> tempList = new ArrayList<>();
3、二进制数字表达方式
// An 8-bit 'byte' value: byte aByte = (byte)0b00100001; // A 16-bit 'short' value: short aShort = (short)0b1010000101000101; // Some 32-bit 'int' values: int anInt1 = 0b10100001010001011010000101000101; int anInt2 = 0b101; int anInt3 = 0B101; // The B can be upper or lower case. // A 64-bit 'long' value. Note the "L" suffix: long aLong = 0b1010000101000101101000010100010110100001010001011010000101000101L; int[] phases = {0x31, 0x62, 0xC4, 0x89, 0x13, 0x26, 0x4C, 0x98};
4、使用下划线对数字进行分隔表达,例如 1_322_222
float pi1 = 3_.1415F; // Invalid; 不能在小数点附近放置下划线 float pi2 = 3._1415F; // Invalid; 不能在小数点附近放置下划线 long socialSecurityNumber1 = 999_99_9999_L; // Invalid; 不能将下划线放在L前面 int x1 = _52; // Invalid; This is an identifier, not a numeric literal int x2 = 5_2; // OK (decimal literal) int x3 = 52_; // Invalid; 不能将下划线放在最后 int x4 = 5_______2; // OK (decimal literal) int x5 = 0_x52; // Invalid; 不能将下划线放在0x之间 int x6 = 0x_52; // Invalid; 不能将下划线放在数字的开头 int x7 = 0x5_2; // OK (hexadecimal literal) int x8 = 0x52_; // Invalid; 不能将下划线放在数字的结尾 int x9 = 0_52; // OK (octal literal) int x10 = 05_2; // OK (octal literal) int x11 = 052_; // 不能将下划线放在数字的结尾
5、同时捕获多个异常处理:
try { //code... }catch (IOException|SQLException ex) { throw ex; }
6、自动资源管理
Java中某些资源是需要手动关闭的,如InputStream,Writes,Sockets,Sql classes等。这个新的语言特性允许try语句本身申请更多的资源,这些资源作用于try代码块,并自动关闭。
try (BufferedReader br = new BufferedReader(new FileReader(path)) { return br.readLine(); }
7、Java I/O:
java.nio.file 包以及相关的包 java.nio.file.attribute 提供对文件 I/O 以及访问文件系统的全面支持,请看 File I/O (featuring NIO.2).
目录 /sample/nio/chatserver/ 包含使用 java.nio.file 包的演示程序
目录 /demo/nio/zipfs/ 包含 NIO.2 NFS 文件系统的演示程序
8、Java 虚拟机
支持非 Java 语言: Java SE 7 引入一个新的 JVM 指令用于简化实现动态类型编程语言
Garbage-First Collector 是一个服务器端的垃圾收集器用于替换 Concurrent Mark-Sweep Collector (CMS).
提升了 Java HotSpot 虚拟机的性能
9、并发:
fork/join 框架,基于 ForkJoinPool 类,是 Executor 接口的实现,设计它用来进行高效的运行大量任务;
使用 work-stealing 技术用来保证大量的 worker 线程工作,特别适合多处理器环境,详情请看 Fork/Join
目录/sample/forkjoin/ 包含了 fork/join 框架的演示程序
ThreadLocalRandom 类class 消除了使用伪随机码线程的竞争,请看 Concurrent Random Numbers.
Phaser 类是一个新的同步的屏障,与 CyclicBarrier 类似.
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树