JDK1.7新特性(1):Switch和数字
Switch
jdk1.7的switch语句增加了对字符串类型的支持。其实现的原理是通过字符串的hash值来比较的,代码示例如下:
String name = "KiDe";
// Welcome the owner!
switch (name) {
case "KiDe":
System.out.println("Welcome the owner!");
break;
default:
System.out.println("Welcome the other!");
}
switchTest
不过需要注意的是,即使新增了对字符串的支持。但是如果该字符串有特殊含义且多次在代码中被使用,还是应该使用enum类型来代替直接的字符串switch。
数字
jdk1.7之后对数字的改动主要包括两方面,
一是对二进制字面常量的支持,同数字前面加0表示八进制,加0X表示16进制,前面加0B表示二进制,代码示例如下:
// 支持二进制字面常量(以0b或者0B开始)
System.out.println(0b00011); //
System.out.println(0B10011); //
Binary
二是出于对数字易读性的考虑,支持数字之间以"_"分隔,而不影响数字原来的值。出于对编译器实现简单的考虑,下划线的添加地方也很讲究,不支持将下划线添加在数字开头或者末尾,也不支持将下划线添加在数字的小数部分开头。这样编译器在处理的时候,只需将下划线抹掉,就能得到原来的数字。
// 数字之间支持以下划线来区分,其中的下划线可以是一个也可以时多个。
int a = 1_23_2__34;
float b = 1_112.1__1_2f;
System.out.println(a); //
System.out.println(b); // 1112.112
Number
通过这个改动其实可以发现,java的发展也在越来越向人性化发展,再不影响运行效率的前提下,为其他可扩展的方面做了很多努力。
JDK1.7新特性(1):Switch和数字的更多相关文章
- JDK1.7新特性
jdk1.7新特性 1 对集合类的语言支持: 2 自动资源管理: 3 改进的通用实例创建类型推断: 4 数字字面量下划线支持: 5 switch中使用string: 6 二进制字面量: 7 简化可变参 ...
- jdk1.6新特性
1.Web服务元数据 Java 里的Web服务元数据跟微软的方案基本没有语义上的区别,自从JDK5添加了元数据功能(Annotation)之后,SUN几乎重构了整个J2EE体 系, 由于变化很大,干脆 ...
- java基础第八篇之jdk1.5、jdk1.7、jdk1.8新特性
JDK5新特性 自动装箱和拆箱 泛型 增强for循环 静态导入 可变参数 枚举 枚举概述 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.举例:一周只有7天,一年只有12个月等. 回想单 ...
- jdk1.5新特性之-----自动装箱与自动拆箱
import java.util.ArrayList; /* jdk1.5新特性之-----自动装箱与自动拆箱. java是面向对象 的语言,任何事物都可以使用类进行描述,sun就使用了 一些类描述j ...
- JDK1.8 新特性
jdk1.8新特性知识点: Lambda表达式 函数式接口 *方法引用和构造器调用 Stream API 接口中的默认方法和静态方法 新时间日期API https://blog.csdn.net/qq ...
- JDK1.6新特性,WebService强化
Web service是一个平台独立的,松耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序. Web ...
- JDK1.5新特性,基础类库篇,集合框架(Collections)
集合框架在JDK1.5中增强特性如下: 一. 新语言特性的增强 泛型(Generics)- 增加了集合框架在编译时段的元素类型检查,节省了遍历元素时类型转换代码量. For-Loop循环(Enhanc ...
- JDK1.7新特性(2):异常和可变长参数处理
异常 jdk1.7对try--catch--finally的异常处理模式进行了增强,下面我们依次来看增强的方面. 1. 为了防止异常覆盖,给Throwable类增加了addSuppressed方法,可 ...
- jdk1.8新特性应用之Iterable
我们继续看lambda表达式的应用: public void urlExcuAspect(RpcController controller, Message request, RpcCallback ...
随机推荐
- 3-C#面向对象概念
本篇博客对应视频讲解 回顾 前两篇博文带大家快速的感知一下使用C#编写程序是怎样的过程,能实现什么样的功能.同时也提到了面向对象的概念.本篇文章就是更加详细的去将面向对象编程中常见的概念进行示例说明, ...
- ({i:0#.w|nt authority\iusr})Sharepoint impersonates the IUSR account and is denied access to resources
This hotfix makes a new application setting available in ASP.NET 2.0. The new application setting is ...
- Aircrack-ng无线破解总结
过年回来家,奈何没网,实属无奈,只好看破解教程,看能否破出来.于是总结如下 测试环境在linux平台下,我用的是ubuntu环境.ubuntu安装可以直接用sudo apt-get install a ...
- 1305 Pairwise Sum and Divide(数学 ,规律)
HackerRank 1305 Pairwise Sum and Divide 有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整: fun(A) sum = ...
- robot framework学习笔记之九-杂记
Setup和Teardown 假设Suite1下面有Test1和Test2,若它们都设置了Setup和Teardown,那么它们的执行顺序是:Suite1-Setup->Test1-Setup- ...
- windows文件名太长无法删除的解决办法
安装nodejs 的模块hexo后,由于香重新安装,在删除的时候却提示文件名太长无法删除,dos命令.回收站各种都无法搞定,后来找到解决办法: 1.进入这些文件的所在目录的上层目录,右键这些文件的所在 ...
- Centos7 自定义systemctl服务脚本
序言篇: 之前工作环境一直使用Centos6版本,脚本一直在使用/etc/init.d/xxx:系统升级到Cento7后,虽然之前的启动脚本也可以使用,但一直没有使用systemctl 的自定义脚本. ...
- Linux之virtualbox中的ubuntu虚拟机linux系统共享文件夹
windows通过virtualbox软件与linux系统机型文件共享 1.第一步 在设置中找到共享文件夹选项,选择添加共享文件夹 2.第二步 选择需要与linux进行共享的文件夹,并选择固定分配 3 ...
- ArrayList集合与List与数组的区别
import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.Lis ...
- HDU - 6133 启发式合并
题意:给出一棵树共\(n\)个顶点,每个顶点有一个权值\(val_i\),你需要对每个节点统计一个最优解 每个节点的解按照一定规则产生:取出该节点的子树下所有的顶点,把顶点任意排序成一个序列,设为\( ...