首页 > 编程语言 >Java千问:Java语言各种数据的“非常规”写法你都会吗?

Java千问:Java语言各种数据的“非常规”写法你都会吗?

时间:2022-12-27 16:01:10浏览次数:59  
标签:非常规 Java 千问 下划线 浮点数 整数 写法 数字

​Java程序中总是会出现一些数字。我们通常都是用常规的方式来表示这些数字,如以下代码所示

int a = 1;
double b = 1.5;

但是数字也可以有非常规写法,在这里我们用一篇短文简单总结一下

一、整数的非十进制写法

首先强调一下,这里所说的整数并不是单指int类型,而是包含了int、byte、short和long这4种整数类型。在Java语言中,除了可以用十进制的形式表示整数以外,还可以用二进制、八进制和十六进制的方式表示整数。如果用十六进制的形式表示一个整数,数字要以0X开头,如果用八进制表示,则用0开头,而用二进制表示,用0B开头,如以下代码所示

byte​n1 = 0B1011;//二进制表示法,换算等于十进制的11
int​n2 = 072;//八进制表示法,换算等于十进制的58
long​n3 = 0XFF5C;//十六进制表示法,换算等于十进制的65372

以上代码中就是数字的非十进制表示法以及对应的换算结果。需要注意的是,我们在一开始就强调了这几种表示法都是针对整数而言的,所以说,这几种表示数字的写法中,不能出现小数点,否则会出现语法错误!

二、浮点数的科学计数法

Java语言为了能够让浮点数表示出更大范围的数字,除了允许我们使用常规写法以外,还可以让我们用科学计数法的形式表示浮点数。我们来看一个例子

float n4 = 2.3E3F;//换算等于2.3*1000

使用科学计数法表示浮点数,需要用一个字母E来把系数和指数隔开。具体来说就是:字母E的前面是一个浮点数,后面是一个整数。E之前的浮点数是系数,而E之后的整数就表示10的多少次方,这个整数可以是负数。上面代码中,数字2.3E3F其实就是2.3乘以10的3次方。在数字的最后又出现了一个字母F,是因为浮点数常量默认都是double类型,把double类型的数据赋值给float类型的变量,要在末尾加字母F进行数据类型转换。

另外,必须强调一点就是:科学计数法只能用来表示浮点数,如果我们把一个用科学计数法表示的数字赋值给整型变量就会出现语法错误。即便字母E前面的系数不带小数点也不行!

三、数字中带有下划线

int n5 = 1000000000;

如果你看到上面的数字,我想你肯定会数一下这个数字中有多少个0。我们知道,在财会行业,为了降低读错数字的概率,人们经常会在数字中加入逗号,比如会把100000写成100,100。从JDK1.7开始,Java语言也借鉴了这种写法,但做了一点点改变,把数字之间的分隔符用逗号改成了下划线,比如说,我们可以把刚才代码中那个很长的数字写成

int n5 = 1_000_000_000;

对于这种加下划线的写法,需要强调几个注意事项

  1. 这种写法是从JDK1.7才开始引入的,早期版本的JDK并不支持这种写法
  2. 下划线出现的位置随意,并非一定要每3位数字才能出现一个下划线
  3. 无论浮点数还是整数,数字当中都可以出现下划线

如果想系统学习Java编程可以点击这里观看我在本站的视频课程。


标签:非常规,Java,千问,下划线,浮点数,整数,写法,数字
From: https://blog.51cto.com/mugexuetang/5972901

相关文章

  • Java基本数据类型
    目录1基本类型2基本类型的包装类2.1基本类型与包装类型区别与关联2.2装箱与拆箱2.3缓冲池3隐式类型转换4switch1基本类型Java里面只有八种原始类型,其列表如下:......
  • SpiderMonkey-让你的C++程序支持JavaScript脚本
    译序有些网友对为什么D2JSP能运行JavaScript脚本程序感到奇怪,因此我翻译了这篇文章,原文在​​这里​​​。这篇教程手把手教你如何利用SpiderMonkey创建一个能执行JavaScri......
  • Java千问:开发Java程序为什么要配置环境变量?
    我们在学习搭建Java开发环境的时候,老师总是让我们先安装JDK,紧接着又让我们去配置环境变量,之后才能动手编写Java程序。很多同学按照老师的步骤去做,成功的搭建好了Java开发环......
  • JavaScript-C/C++ (SpiderMonkey) 引擎嵌入开发指南(中文向导)
    JavaScript-C/C++引擎概览本文档提供了一个JavaScript(JS)引擎的C语言实现的概述,他介绍了你如何在你的应用程序中嵌入脚本引擎来让它们可以使用JS。有两大理由让你在应用程......
  • Java--递归
    递归A方法调用B方法,我们很容易理解!递归就是:A方法调用A方法!就是自己调用自己利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个......
  • 详解JAVA线程问题诊断工具Thread Dump
    摘要:ThreadDump是非常有用的诊断Java应用问题的工具。本文分享自华为云社区《调试排错-Java线程分析之线程Dump分析》,作者:龙哥手记。ThreadDump是非常有用的诊断Jav......
  • Java同步器之Condition源码分析
    一、概述条件锁就是指在获取锁之后发现当前业务场景自己无法处理,而需要等待某个条件的出现才可以继续处理时使用的一种锁。比如,在阻塞队列中,当队列中没有元素的时候是无......
  • Java线程中的wait、notify和notifyAll解析
    等待唤醒案例:线程间的通信顾客去包子铺买包子,告知老板自身需求后,进入等待(调用wait()方法)老板处理的过程,此时顾客的状态为WAITING,老板做好包子后,告知(调用notify()方法)顾......
  • JavaWeb项目实战(3)软件快速下载
    前两篇文章里提到的所有文件均可在这里下载:​​https://www.lmonkey.com/tools/java​​......
  • JavaScript 深拷贝的循环引用问题
    如果说道实现深拷贝最简单的方法,我们第一个想到的就是JSON.stringify()方法,因为JSON.stringify()后返回的是字符串,所以我们会再使用JSON.parse()转换为对象,如下代码:let......