Java 7 语法新特性
一、二进制数字表达方式
原本整数(以60为例)能够用十进制(60)、八进制(074)、十六进制(0x3c)表示,唯独不能用二进制表示(111100),Java 7 弥补了这点。
public class BinaryInteger
{
public static void main(String[] args) {
int a = 0b111100; // 以 0b 开头
System.out.println(a); //输出60
}
}
二、使用下划线对数字进行分隔表达
原本表示一个很长的数字时,会看的眼花缭乱(比如1234567),Java 7 允许在数字间用下划线分隔(1_234_567),为了看起来更清晰。
public class UnderscoreNumber
{
public static void main(String[] args) {
int a = 1_000_000; //用下划线分隔整数,为了更清晰
System.out.println(a);
}
}
三、switch 语句支持字符串变量
原本 Switch 只支持:int、byte、char、short,现在也支持 String 了。
public class Switch01
{
public static void main(String[] args) {
String str = "B";
switch(str)
{
case "A":System.out.println("A");break;
case "B":System.out.println("B");break;
case "C":System.out.println("C");break;
default :System.out.println("default");
}
}
}
四、泛型的“菱形”语法
- Map<String,String> map = new HashMap<String,String>();
- Map<String,String> map = new HashMap<>();
五、自动关闭资源的try
- 将try中会打开的资源(这些资源必须实现Closeable或AutoCloseable)声明在圆括号内。
import java.io.*;
public class Try01
{
public static void main(String[] args) {
try(
FileInputStream fin = new FileInputStream("1.txt"); // FileNotFoundException,SecurityException
)
{
fin.read(); //抛 IOException
}
catch(IOException e) //多异常捕捉
{
e.printStackTrace();
}
}
}
六、多异常捕捉
如果在try语句块中可能会抛出 IOException 、NumberFormatException 异常,因为他们是检验异常,因此必须捕捉或抛出。如果我们捕捉他且处理这两个异常的方法都是e.printStackTrace(),则:
try
{
}
catch(IOException e)
{
e.printStackTrace();
}
catch(NumberFormatException e)
{
e.printStackTrace();
}
Java 7 能够在catch中同时声明多个异常,方法如下:
try
{
}
catch(IOException | NumberFormatException e)
{
e.printStackTrace();
}
七、增强型throws声明
原本如果在try中抛出 IOException,以catch(Exception e)捕捉,且在catch语句块内再次抛出这个异常,则需要在函数声明处:throws Exception,而不能 throws IOException,因为Java编译器不知道变量e所指向的真实对象,而Java7修正了这点。
import java.io.*;
public class Throws01
{
public static void main(String[] args) throws FileNotFoundException{
try
{
FileInputStream fin = new FileInputStream("1.txt");
}
catch(Exception e) //Exception e = new FileNotFoundException();
{
throw e;
}
}
}
Java 7 语法新特性的更多相关文章
- [转] Java 8的新特性
简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...
- Java 8的新特性—终极版
作者:杜琪[译] 原文链接:http://www.jianshu.com/p/5b800057f2d8 1. 简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本 ...
- Java7语法新特性
Java7语法新特性: 1. switch中增加对String类型的支持. public String generate(String name, String gender) { String ti ...
- Java 9和Java 10的新特性
http://www.infoq.com/cn/news/2014/09/java9 Java 9新特性汇总 继2014年3月份Java 8发布之后,Open JDK加快了开发速度, Java 9的发 ...
- Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结
Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...
- Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结
Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结 1.1. C# 1.0-纯粹的面向对象 1.2. C# 2.0-泛型编程新概念 1.3. ...
- JDK 15 JAVA 15的新特性展望
目录 JEP 371: Hidden Classes JEP 372: 删除 Nashorn JavaScript Engine JEP 377: 新的垃圾回收器ZGC正式上线了 JEP 378: T ...
- Java SE 6 新特性: 对脚本语言的支持
2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Musta ...
- Java 新特性(5) - Java EE 5 新特性
Java EE 5 由 Java Community Process 通过 Java Specification Request 244 发布,这个 “总纲” JSR 指出了详细描述 Java EE ...
随机推荐
- Swift Json 解析错误
昨天在开发公司的ios程序时,遇见一个json解析的问题,并且是一个非常奇怪的问题. 因为原来的代码比较复杂,所以对代码进行了一些简化,具体代码如下: 服务器返回格式(PHP): array( arr ...
- Codeforces Round #285 (Div. 1) A. Misha and Forest 拓扑排序
题目链接: 题目 A. Misha and Forest time limit per test 1 second memory limit per test 256 megabytes 问题描述 L ...
- AngularJS 基础
1. AngularJs 是一个JS 框架,是一种基于MVC的设计模式 2. script 需引用 <script src="angular.min.js">,安装包 ...
- HDU 1102 Constructing Roads(最小生成树,基础题)
注意标号要减一才为下标,还有已建设的路长可置为0 题目 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<str ...
- POJ2485Highways
http://poj.org/problem?id=2485 题意 : 这道题和1258很像,但是这道题求的是最小生成树中最大的那条边,所以在函数里处理一下就行了. 思路 : 赤裸裸的最小生成树啊,但 ...
- hdu 1271 整数对
看了别人的解题报告a了, 大致思路就是 A=a+b*10^k+c*10^(k+1) B=a+c*10^k (在A中取出一位数后) N=A+B=2*a+b*10^k+11*c*10^k 这样就好做了,再 ...
- 【转载】synchronized 与 Lock 的那点事
最近在做一个监控系统,该系统主要包括对数据实时分析和存储两个部分,由于并发量比较高,所以不可避免的使用到了一些并发的知识.为了实现这些要求,后台使用一个队列作为缓存,对于请求只管往缓存里写数据.同时启 ...
- Meteor 简介
简介 先来活动一下大脑.假设你坐在电脑面前,在两个窗口中打开同一个文件夹. 在其中一个窗口中删除一个文件,另一个窗口中的这个文件会消失吗? 不用实际操作你也知道肯定会消失的.在本地文件系统中的操作,不 ...
- div+css 定位浅析
在用CSS+DIV进行布局的时候,一直对position的四个属性值relative,absolute,static,fixed分的不是很清楚,以致经常会出现让人很郁闷的结果. 先看下各个属性值的定义 ...
- 深入理解JVM—Java 6 JVM参数配置说明
原文地址:http://yhjhappy234.blog.163.com/blog/static/316328322011119111014657/ 使用说明< xmlnamespace pre ...