zoukankan      html  css  js  c++  java
  • 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的发展也在越来越向人性化发展,再不影响运行效率的前提下,为其他可扩展的方面做了很多努力。

  • 相关阅读:
    [Android] 布局优化技巧
    [Android] 仿照 Last App Switcher 写的小程序
    [Java] 用 Comparator 实现排序
    [Android] Service服务详解以及如何使service服务不被杀死
    [MarkDown] markdown语法小结
    [Android] TextView长按复制实现方法小结(转载)
    [Android] 关于系统工具栏和全屏沉浸模式
    [Android] 锁定屏幕
    [Android] 针对生成的图片文件在系统Gallery不显示的处理
    [Android] TableLayout
  • 原文地址:https://www.cnblogs.com/Kidezyq/p/5732345.html
Copyright © 2011-2022 走看看