• JDK1.7新特性(1):Switch和数字


    Switch

      jdk1.7的switch语句增加了对字符串类型的支持。其实现的原理是通过字符串的hash值来比较的,代码示例如下:

    1 String name = "KiDe";
    2 // Welcome the owner!
    3 switch (name) {
    4     case "KiDe":
    5         System.out.println("Welcome the owner!");
    6         break;
    7     default:
    8     System.out.println("Welcome the other!");
    9 }        
    switchTest

    不过需要注意的是,即使新增了对字符串的支持。但是如果该字符串有特殊含义且多次在代码中被使用,还是应该使用enum类型来代替直接的字符串switch。

    数字

      jdk1.7之后对数字的改动主要包括两方面,

      一是对二进制字面常量的支持,同数字前面加0表示八进制,加0X表示16进制,前面加0B表示二进制,代码示例如下:

    1 // 支持二进制字面常量(以0b或者0B开始)
    2 System.out.println(0b00011);    // 3
    3 System.out.println(0B10011);    // 19
    Binary

      二是出于对数字易读性的考虑,支持数字之间以"_"分隔,而不影响数字原来的值。出于对编译器实现简单的考虑,下划线的添加地方也很讲究,不支持将下划线添加在数字开头或者末尾,也不支持将下划线添加在数字的小数部分开头。这样编译器在处理的时候,只需将下划线抹掉,就能得到原来的数字。

    1 // 数字之间支持以下划线来区分,其中的下划线可以是一个也可以时多个。
    2 int a = 1_23_2__34;
    3 float b = 1_112.1__1_2f;
    4 System.out.println(a);        // 123234
    5 System.out.println(b);        // 1112.112
    Number

      通过这个改动其实可以发现,java的发展也在越来越向人性化发展,再不影响运行效率的前提下,为其他可扩展的方面做了很多努力。

  • 相关阅读:
    读《大道至简》第6章有感
    Java作业05(动手动脑)
    读《大道至简》第五章有感
    java作业04(动手动脑)
    域名与主机名
    STL 迭代器学习
    数组与链表增删改查效率比较
    智能指针多线程安全问题
    快速乘 学习
    关于TCP三个冗余ACK启动快速重传
  • 原文地址:https://www.cnblogs.com/Kidezyq/p/5732345.html
Copyright © 2020-2023  润新知