当前位置: 首页 > news >正文

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

转载于:https://www.cnblogs.com/Kidezyq/p/5732345.html

相关文章:

  • ios开发图片轮播器以及定时器小问题
  • Ubuntu里面软件的安装与卸载
  • ubuntu 设置DNS
  • jquery ajax 传数据到后台乱码的处理方法
  • CSS样式
  • NuGet 学习笔记(1)--Nuget安装使用
  • Part5核心初始化_lesson2---设置svc模式
  • 几个常用的CSS3样式代码以及不兼容的解决办法
  • 报个到
  • iOS: NSArray的方法arrayByAddingObjectsFromArray:
  • excel转化为Json
  • dispatch_after 导致controller没有及时释放
  • poj 2763: [JLOI2011]飞行路线(spfa分层图最短路)
  • uboot 第三天学习
  • 数学概念的理解
  • Java应用性能调优
  • leetcode46 Permutation 排列组合
  • leetcode讲解--894. All Possible Full Binary Trees
  • Mac转Windows的拯救指南
  • tab.js分享及浏览器兼容性问题汇总
  • Web Storage相关
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 入手阿里云新服务器的部署NODE
  • 深度学习入门:10门免费线上课程推荐
  • 数据可视化之 Sankey 桑基图的实现
  • 项目管理碎碎念系列之一:干系人管理
  • 新手搭建网站的主要流程
  • 应用生命周期终极 DevOps 工具包
  • 《码出高效》学习笔记与书中错误记录
  • Hibernate主键生成策略及选择
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (02)vite环境变量配置
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (floyd+补集) poj 3275
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (四)Android布局类型(线性布局LinearLayout)
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)ObjectiveC 深浅拷贝学习
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • *1 计算机基础和操作系统基础及几大协议
  • .Net 6.0 处理跨域的方式
  • .net 流——流的类型体系简单介绍
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET大文件上传知识整理
  • ::before和::after 常见的用法
  • @Autowired注解的实现原理
  • [1127]图形打印 sdutOJ
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [C++] 统计程序耗时
  • [C++]运行时,如何确保一个对象是只读的
  • [C++随笔录] 红黑树