zoukankan      html  css  js  c++  java
  • Java7新特性

    二进制字面量

    jdk7开始,终于可以用二进制来表示整数(byte,short,int和long)。
    使用二进制字面量的好处是,可以使代码更容易被理解。语法非常简单,
    只要在二进制数值前面加0b或0B
    举例:int x=0B110110

    数字字面量可以出现下划线

    为了增强对数值的阅读性,如我们经常把数据用逗号分隔一样,JK7提供了_对数值分隔。
    举例:int x=1_000;
    注意事件:
        不能出现在进制标识和数值之间
        不能出现在数值开头和结尾
        不能出现在小数点旁边

    switch语句可以用字符串

    	String value="吕世昊";
    	switch (value) {
    		case "吕世昊":
    			System.out.println("嗯嗯他是人才");
    			break;
    		default:
    			System.out.println("嗯嗯他是不人才");
    			break;
    	}
    

    泛型简化

    	//后面的泛型类型可以不需要写,这叫泛型推断,也可以叫菱形泛型
    	ArrayList<String> arrayList=new ArrayList<>();
    

    异常的多个catch合并

    Java 7之前的版本:
    如果用一个catch块处理多个异常,可以用管道符(|)将它们分开,在这种情况下异常参数变量(ex)是定义为final的,所以不能被修改。这一特性将生成更少的字节码并减少代码冗余。
    Java 7之前的版本:
    	catch (IOException ex) {
    		logger.error(ex);
     		throw new MyException(ex.getMessage());
    	catch (SQLException ex) {
    		 logger.error(ex);
    		 throw new MyException(ex.getMessage());
    	}catch (Exception ex) {
    		 logger.error(ex);
    		 throw new MyException(ex.getMessage());
    	}
    在Java 7中,我们可以用一个catch块捕获所有这些异常:
    	catch(IOException | SQLException | Exception ex){
    		 logger.error(ex);
    		 throw new MyException(ex.getMessage());
    	}
    

    try-with-resources语句

    格式:try(必须是java.lang.AutoCloseable的子类对象){...}
    好处:
    	资源自动释放,不需要close()了
    	把需要关闭资源的部分都定义在这里就ok了
    	主要是沉体系的对象是这个接口的子类(看JDK7的API)
    
    /**
    * 个性签名:今天的努力只要对得起自己就满足了
    * 创建人:吕世昊  
    * 创建时间:2019年3月22日 下午1:48:41   
    * @version
     */
    public class Test3 implements AutoCloseable{
    	public static void main(String[] args)  {
    		//1.7之后,只要实现了AutoCloseable接口
    		try(Test3 test=new Test3()){
    		  System.out.println("--执行main方法--");
    		  System.out.println(1/0);
    		}catch (Exception e) {
    		  System.out.println("--exception--");
    		}
    		System.out.println("-------------------");
    		//JDK1.7之前,释放资源方式
    		try {
    		  System.out.println("--执行main方法--");
    		  System.out.println(1/0);
    		} catch (Exception e) {
    		  System.out.println("--exception--");
    		}finally {
    		  System.out.println("--close--");
    		}
    	}
    
    	@Override
    	public void close() throws Exception {
    		// TODO Auto-generated method stub
    		System.out.println("close");
    	}
    }

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------

    作者:吕世昊

    个性签名:学习如逆水行舟,不进则退!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    IIS发布问题解决
    创建Core项目使用IdentityServer4
    通过数据库名称字符串 反射获取数据并刷新对应缓存
    MVC模式下unity配置,报错“No connection string named '**Context' could be found in the application config file”
    Docker巨轮的航行之路-基础知识篇
    C#之LINQ
    Js调试中不得不知的Console
    jQuery中是事件绑定方式--on、bind、live、delegate
    前端常用技术概述--Less、typescript与webpack
    ES6学习之变量的解构赋值
  • 原文地址:https://www.cnblogs.com/lvshihao/p/15126010.html
Copyright © 2011-2022 走看看