Java千问:Java语言各种数字的“非常规”写法你都会吗?
Java程序中总是会出现一些数字。我们通常都是用常规的方式来表示这些数字,如以下代码所示
int a = 1;double b = 1.5;
但是数字也可以有非常规写法,在这里我们用一篇短文简单总结一下
整数的非十进制写法
首先强调一下,这里所说的整数并不是单指int类型,而是包含了int、byte、short和long这4种整数类型。在Java语言中,除了可以用十进制的形式表示整数以外,还可以用二进制、八进制和十六进制的方式表示整数。如果用十六进制的形式表示一个整数,数字要以0X开头,如果用八进制表示,则用0开头,而用二进制表示,用0B开头,如以下代码所示
byte n1 = 0B1011;//二进制表示法,换算等于十进制的11int n2 = 072;//八进制表示法,换算等于十进制的58long 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编程,可以点击这里观看我的视频课程,有问题也可以加入我的QQ群291839907一起讨论!
Java千问:Java语言各种数字的“非常规”写法你都会吗?相关推荐
- Java千问:开发Java程序为什么要配置环境变量?
我们在学习搭建Java开发环境的时候,老师总是让我们先安装JDK,紧接着又让我们去配置环境变量,之后才能动手编写Java程序.很多同学按照老师的步骤去做,成功的搭建好了Java开发环境,并且运行出了自 ...
- 【Java千问】你了解Java内存结构么(Java7、8、9内存结构的区别)
Java内存结构是每个java程序员必须掌握理解的,这是Java的核心基础,对我们编写代码特别是并发编程时有很大帮助.由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是 ...
- Java千问:Java语言位运算符详解
很多编程语言都有位运算符,Java语言也不例外.在Java语言中,提供了7种位运算符,分别是按位与(&).按位或(|).按位异或(^).取反(~).左移(<<).带符号右移(> ...
- 【Java千问】HashMap之追命5连问
1.HashMap底层实现数据结构? 总的来说,HashMap就是数组+链表的组合实现,每个数组元素存储一个链表的头结点,本质上来说是哈希表"拉链法"的实现. HashMap的链表 ...
- Java千百问局部变量、类变量、实例变量有什么区别
Java千百问局部变量.类变量.实例变量有什么区别 局部变量.类变量.实例变量有什么区别 在聊局部变量.类变量.实例变量有什么区别之前,我们需要了解一下Java变量. 1.Java变量是什么 在数学世 ...
- JAVA语言中数字、字符和字符串处理
前言: JAVA语言中针对数字.数学运算.字符.字符串有专门的类,分别是Number.Math.Character和String. 1.数字: JAVA对数字处理的相关方法被封装在java.lang包 ...
- Java千百问_01基本概念(003)_J2EE里面的2是什么意思
J2EE里面的2是什么意思 J2SE,J2SE,J2ME中2的含义要追溯要1998年. 1998年Java 1.2版本发布,1999年发布Java 1.2的标准版,企业版,微型版三个版本,为了区分这三 ...
- 数字连连看java实验报告,Java语言实现数字连连看源码
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class lianliankan implement ...
- java 107问_JAVA面试题26-107(答案)
Server.java:源代码 import java.net.*; import java.io.*; class Server { public Server() { BufferedReader ...
最新文章
- 未来之路—写在大二结束之前
- 在ASP.NET中实现Url Rewriting
- c++变量重新赋值_Java基础二:一文讲透变量与数据类型
- 超棒的在线Bootstrap主题编辑工具 - lollytin
- 一切问题的解决都离不开人
- Day3-Spring的事务管理、Spring框架的JDBC模板
- 图片轮播的JS写法,通用涉及多个轮播
- Ubuntu16.04快速安装搜狗拼音输入法
- 新零售 —— 智慧门店原理详解
- scikit-learn功能大全
- PS带框的对号怎么打
- 微信小程序开发之——音乐播放器-播放器(3.4)
- uniAPP 自定义页面导航烂 - 搜索 APP有效
- 李笑来《韭菜的自我修养》笔记
- 世界上最悲惨的人……
- 趣味题:爱因斯坦的问题
- staruml 4.0下载安装
- QuickSort c++
- 接口自动化-用Jayway JsonPath对json文件进行读写操作,完成自定义传参
- Java经典例题07:用100元人民币兑换10元、5元、1元的纸币
热门文章
- 51单片机移植UCOS-II的方法与改进
- 网页中加入最新款百度天气预报样式代码
- Simulink选择器模块(Selector)
- 利用python中basemap库绘制地图
- 计算机专业学单片机有用吗,“智能”占领电脑时代,当今为什么要学习单片机?...
- d3带箭头和点击事件的力导向关系图
- iframe标签(属性介绍(sandbox、srcdoc、scrolling)、iframe对象、onload事件、父集获取iframe内节点(同源和不同源情况)、domain修改规则和示例)
- 在vue新版脚手架中下载和使用jquery
- 猜想2010年IT十大表情
- 电脑维护入门 GHOST 使用方法 图解说明