JavaJDK7的新语法探索

前言

感谢! 承蒙关照~

字面量:

各种精致的表达方式:

八进制以0开头,十六进制0X开头,二进制以0B开头.

二进制运算时,应该写成这样才直观:

  1. &15 -> &0B1111

JDK7使用下划线(_)对数据进行分隔.

下划线不要这样做:

不要用于进制标识和数值之间,不要定义在数值开头和结尾,不要定义在小数点旁边.

  1. // 错误
  2. 0B_1111; _0X32_; 1_._223;

二进制的表示方式:

  1. public class BinaryDemo {
  2. public static void main(String[] args){
  3. // 定义二进制0B开头
  4. int x=0B111100;
  5. System.out.println(x);
  6. int n1 = x & 0b1111;
  7. System.out.println(n1);
  8. // 用下划线
  9. int y = 12_34_56;
  10. int z = 0b111_0123_234;
  11. double b = 23.223_23;
  12. }
  13. }

switch

  1. public class Demo{
  2. public static void main(String[] args){
  3. int week = 1;
  4. // 会在内存中进行存储,运算中的数值存储起来运算
  5. if(week == 1){
  6. System.out.println("星期一");
  7. }else if(week == 2){
  8. System.out.println("星期二");
  9. }else {
  10. System.out.println("输入错误");
  11. }
  12. }
  13. // 字节码,标记,选择的值,是一个标识,对应的执行的代码
  14. switch(week){
  15. case 1:
  16. System.out.println("星期一");
  17. break;
  18. case 2:
  19. System.out.println("星期二");
  20. break;
  21. default:
  22. System.out.println("输入错误");
  23. }
  24. public static void Demo(){
  25. String sex="男";
  26. if(sex.equals("男")){
  27. System.out.println("男");
  28. }else{
  29. System.out.println("女");
  30. }
  31. // 编译器的强大
  32. switch(sex){
  33. case "男":
  34. System.out.println("你好");
  35. break;
  36. case "女":
  37. System.out.println("你好");
  38. break;
  39. default:
  40. System.out.println("hello");
  41. }
  42. }
  43. }
  1. // sex.hashCode();
  2. {
  3. String sex = "男";
  4. String s;
  5. switch ((s=sex).hashCode())
  6. {
  7. default:
  8. break;
  9. case 22899:
  10. if(!s.equals("女"))
  11. break;
  12. System.out.println("女孩你好");
  13. break labe10;
  14. case 30007:
  15. if(s.equals("男"))
  16. {
  17. System.out.println("先生");
  18. break labe10;
  19. }
  20. break;
  21. }
  22. System.out.println("你好");
  23. }

泛型

Java7简化,左边定义类型,右边不用定义类型,写<>;

  1. for(Iterator<String> it = list.iterator(); it.hasNext(); ){
  2. System.out.pritnln(it.next());
  3. }
  1. List<String> list = new ArrayList<>();
  1. public class Demo {
  2. public static void main(String[] args){
  3. // List<String> list = new ArrayList<String>();
  4. List<String> list = new ArrayList<>();
  5. list.add("abc");
  6. // Iterator<String> it = list.iterator();
  7. }
  8. }

catch

  1. public class Demo{
  2. int[] arr=new int[3];
  3. try{
  4. int element = getElement(arr,1);
  5. }catch(throwNullPointerException){
  6. }catch(ArrayIndexOutOfBoundsException){
  7. }
  8. try{
  9. int element = getElement(arr,1);
  10. }catch(throwNullPointerException || ArrayIndexOutOfBoundsException e){
  11. }
  12. }
  13. // 添加数组,添加角标元素
  14. public static int getElement(int[] arr, int index) throws NullPointerException, ArrayIndexOutOfBoundsException{
  15. if(arr == null){
  16. throw new NullPointerException("数组不存在");
  17. }
  18. if(index<0 || index>= arr.length){
  19. throw new ArrayIndexOutOfBoundsException("数组角标不存在'');
  20. }
  21. return arr[index];
  22. }

try_with_resource

  1. public class Demo{
  2. public static void main(String[] args){
  3. FileReader fr = null;
  4. try{
  5. fr = new FileReader ("dashu.txt");
  6. int ch = fr.read();
  7. System.out.println(ch);
  8. }catch(IOException e){
  9. }finally{
  10. fr.close();
  11. }
  12. }
  13. }

声明:

  1. public static void function() throws IOException{
  2. FileReader fr = null;
  3. try{
  4. fr = new FileReader("dashu.txt");
  5. int ch = fr.read();
  6. System.out.println(ch);
  7. }finally{
  8. if(fr!=null)
  9. try{
  10. fr.close();
  11. }catch(IOException e){
  12. throw new RuntimeException();
  13. }
  14. }
  15. }
  16. }
  1. // 自动释放,关闭的资源会在try()中定义
  2. public static void Demo() throws IOException{
  3. try(FileReader fr = new FileReader("dashu.txt");FileWriter fw = new FileWriter("dashucoding.txt")) {
  4. int ch = fr.read();
  5. fw.write(ch);
  6. System.out.println(ch);
  7. }
  8. }
  1. public static void function() throws IOException{
  2. Exception exception;
  3. exception = null;
  4. Object obj = null;
  5. FileReader fr = new FileReader("dashu.txt");
  6. FileWriter fw = new FileWriter("dashucoding.txt");
  7. int ch = fr.read();
  8. fw.write(ch);
  9. System.out.println(ch);
  10. if(fw != null)
  11. fw.close();
  12. break MISSING_BLOCK_LABFL_66;
  13. exception;
  14. ...
  15. }

达叔小生:往后余生,唯独有你

You and me, we are family !

90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通

简书博客: 达叔小生

https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

Java之JDK7的新语法探索的更多相关文章

  1. java 28 - 6 JDK7的新特性

    JDK7的新特性: 二进制字面量 数字字面量可以出现下划线 switch 语句可以用字符串 泛型简化 异常的多个catch合并 try-with-resources 语句 二进制字面量 JDK7开始, ...

  2. java基础(1)-比较jdk5,jdk6,jdk7的新特性

    jdk8已经出来好长时间了,这里自己学习时简单总结的jdk5,jdk6和jdk7的新特性:本文提纲: 一.jdk5的新特性 二.jdk6的新特性 三.jdk7的新特性 一.jdk5的新特性 首先简单介 ...

  3. Java 8新特性:新语法方法引用和Lambda表达式及全新的Stream API

    新语法 方法引用Method references Lambda语法 Lambda语法在AndroidStudio中报错 Stream API 我正参加2016CSDN博客之星的比赛 希望您能投下宝贵 ...

  4. Java中的10颗语法糖

    语法糖(Syntactic Sugar):也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用.通常来说,使用语法糖能够增加程序的可读性,减少程序代码出错的 ...

  5. .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法

    开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...

  6. 总结常见的ES6新语法特性

    前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...

  7. JAVA JDK1.5-1.9新特性

    1.51.自动装箱与拆箱:2.枚举(常用来设计单例模式)3.静态导入4.可变参数5.内省 1.61.Web服务元数据2.脚本语言支持3.JTable的排序和过滤4.更简单,更强大的JAX-WS5.轻量 ...

  8. (转载)Java 1.7的新特性

    网上找了一下,整理了贴出来. 下面是Java 1.7 里新出现的功能的一些用法例子: 对集合的支持 摒弃了 Java 集合接口的实现类,如: ArrayList . HashSet 和 HashMap ...

  9. 总结常见的ES6新语法特性。

    前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...

随机推荐

  1. 201621123002《java程序设计》第十二周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造你的图书馆管理系统或购物车. 2.1 简述如何 ...

  2. 在IE浏览器进行编辑操作再展示出现乱码问题

    解决方法: ajax传输数据时进行encodeURI编码就可以了 例如: 在其他浏览器中没有进行 encodeURI 直接传输,无问题. 然而,在IE10 和11中进行下面这段代码编辑后,再展示出来就 ...

  3. sql中varchar(n),nvarchar(n) 长度性能及所占空间分析

    sql中varchar(n),nvarchar(n) 长度性能及所占空间分析 1.varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. ...

  4. SAS 选取部分观测

    SAS  对部分观测得处理 在建立新数据集时,有以下两种方式可以从已经存在的数据集中选取观测到新数据集中. ·通过删除不满足条件的观测来保留想要的观测. ·仅接受满足条件的观测. 条件可以由IF语句. ...

  5. windows 10 安装可视化mycat

    前提: 1.安装配置好JDK环境 2.安装配置好mysql 3.安装配置好Navicat 一.下载mycat git:https://github.com/MyCATApache/Mycat-down ...

  6. logback配置文件

    logback-spring.xml 通用配置文件如下: <?xml version="1.0" encoding="UTF-8"?> <co ...

  7. python csv读写

    https://blog.csdn.net/taotiezhengfeng/article/details/75577998

  8. centos 下Python独立虚拟环境创建

    virtualenv Python有着庞大的开源社区的支持,很自然就产生这么一个问题:第三方包参差不齐,如果我们想在服务器测试,或者升级某个包,就会导致生产环境产生杂乱,多余的第三方依赖包. virt ...

  9. Linux关于文件,文件夹操作命令

    文件 文件夹 相关操作命令 查看文件 cd 切换目录位置 ls 目录    查看指定目录所有文件  --缺省当前目录 ls -l 目录 查看指定目录所有文件的详细信息 --同 ll 命令 ls -a ...

  10. C++ Thrift服务端记录调用者IP和被调接口方法

    Apache开源的Thrift(http://thrift.apache.org)有着广泛的使用,有时候需要知道谁调用了指定的函数,比如在下线一起老的接口之前,需要确保对这些老接口的访问已全部迁移到新 ...