在Java中使用下划线分隔数的字面值的用法讲解

 更新时间:2016年03月19日 08:50:29   投稿:goldensun  
这篇文章主要介绍了在Java中使用下划线分隔数字的字面值的用法讲解,这是Java7以后加入的新特性,需要的朋友可以参考下

在Java SE 7中新增了以二进制形式的字面值表示方式,你可以像使用十进制一样,方便地使用二进制形式的字面值来表示数值。

例如:

// 一个8位的byte值:
byte aByte = 0b100001;
// 一个16位的short值:
short aShort = 0b1010010100101;
// 一个32位的int值:
int anInt1 = 0b101000010100010110100101000101;
// 一个64位的long值(注意末尾的后缀「L」)
long aLong = 0b101000010L;
// 二进制字面值以0b或0B开头,不区分大小写
int anInt2 = 0B101;

在Java SE 7中,还支持以下划线作为分隔符联接的数值表示方式:

//十进制形式
int anInt1 = 123_45_6;
//二进制、十六进制等形式也支持
int anInt2 = 0b10_0110_100;
int anInt3 = 0xFF_EC_DE_5E;
//小数形式也支持
float pi = 3.14_15F;
double aDouble = 3.14_15;
//多个下划线相连
int chain = 5______2____0;

不过以下几种书写形式是错误的:

//下划线不能放在最后
int x = 52_;    //错误
//下划线不能邻近小数点(邻近小数点前后都不行)
float pi1 = 3_.1415F;  // 错误
float pi2 = 3._1415F;  //错误
//下划线不能紧放在后缀「L」或「F」的前面
float pi3 = 3.1415_F;  //错误
long aLong1 = 999_99_9999_L;//错误
//下划线不能放在表示进制的前缀字符之间
int x5 = 0_x52;    //错误

此外,还要注意下面这种,将下划线放在最前面的情况:

int _52 = 120; //在Java中,变量名称不能以数字开头,但可以下划线开头
int x = _52;  //所以,这里的_52并不是一个数字的字面值形式,而是一个变量标识符(变量名)

相关文章

  • Java中性能优化的35种方法汇总

    Java中性能优化的35种方法汇总

    很多同学在日常写Java的时候很少去关心性能问题,但是在我们写代码的过程中必须考虑到性能对程序的影响。小到我们使用位运算来实现算术运算,大到我们对 Java 代码的总体架构设计,性能其实离我们很近。本文介绍了Java中性能优化的35种方法,需要的朋友可以参考下。
    2017-01-01
  • 将Java程序的输出结果写到txt文件中的方法

    将Java程序的输出结果写到txt文件中的方法

    今天小编就为大家分享一篇将Java程序的输出结果写到txt文件中的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Spring中的@PropertySource注解源码详细解析

    Spring中的@PropertySource注解源码详细解析

    这篇文章主要介绍了Spring中的@PropertySource注解源码详细解析,@PropertySource注解,标注在配置类@Configuration上面,下面主要分析一下@PropertySource注解的处理过程,也就是怎么把配置信息从.properies文件放到environment中的,需要的朋友可以参考下
    2024-01-01
  • java集合框架的体系结构详细说明

    java集合框架的体系结构详细说明

    最近在一本J2EE的书中看到了很不错的对集合框架的说明文章
    2012-11-11
  • 使用springboot配置文件yml中的map形式

    使用springboot配置文件yml中的map形式

    这篇文章主要介绍了springboot配置文件yml中的map形式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java注释代码执行方法解析

    Java注释代码执行方法解析

    这篇文章主要介绍了Java注释代码执行方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 浅谈Java 代理机制

    浅谈Java 代理机制

    Java 有两种代理方式,一种是静态代理,另一种是动态代理。如果我们在代码编译时就确定了被代理的类是哪一个,那么就可以直接使用静态代理;如果不能确定,那么可以使用类的动态加载机制,在代码运行期间加载被代理的类这就是动态代理
    2021-06-06
  • springboot结合maven配置不同环境的profile方式

    springboot结合maven配置不同环境的profile方式

    这篇文章主要介绍了springboot结合maven配置不同环境的profile方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java SE之了解泛型

    Java SE之了解泛型

    这篇文章主要介绍了Java SE之了解泛型,文章内容详细,简单易懂,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2023-01-01
  • BigDecimal divide除法除不尽报错的问题及解决

    BigDecimal divide除法除不尽报错的问题及解决

    这篇文章主要介绍了BigDecimal divide除法除不尽报错的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论