自从Java发布以来,基本数据类型就是Java语言中重要的一部分,本文就来详细介绍下每种基本类型的具体使用方法和限制。java
几年前,我开始编写了一系列有关Java入门的文章,我以为有必要将其中一些很是细节的内容单独拿出来写成文章。这样,那些入门内容就更容易理解了。首先,我来介绍一下有关Java 8中的基本类型。git
如题所述,Java语言自己有8种基本类型。在下面几节中,就让咱们一块儿来看看这8种基本类型。我将针对每种基本类型,介绍具体的使用方法和限制。github
int基本类型面试
首先,Java的整数是32位有符号(即包括正值和负值)整数,由int关键字表示:后端
int someNumber = 10;
固然,像全部基本类型同样,整型有本身的限制。因为它只有32位,因此其取值范围为-2147483648到2147483647。这数字很大嘛!固然,咱们能够在DrJava的交互面板中用下述技巧来确认:安全
Integer.MAX_VALUE // Prints 2,147,483,647 Integer.MIN_VALUE // Prints -2,147,483,648
天然地,对于简单的计算而言,int是最经常使用的整数类型。若是你须要更大的数字范围,请参照下面的long。微信
double基本类型多线程
与int不一样,Java的双精度类型是64位浮点数,由double关键字表示:架构
double someNumber = 110.55;
须要提醒的是,浮点数实际上就是实数。换句话说,双精度浮点数中包含小数点。因为双精度类型是64位,它能表示的数字要比整型多不少。一样,咱们能够利用交互面板来确认双精度类型的范围:工具
Double.MAX_VALUE // Prints 1.7976931348623157E308 Double.MIN_VALUE // Prints 4.9E-324
须要注意的是,负的指数表示的是很是小的数字,而不是很是大的负数。因此这里的取值范围跟整数不是彻底同样。通常而言,double是在Java中使用浮点数的默认选择。另外一个选择是float。
char基本类型
咱们已经看到,Java的字符类型表示16位字符,由char关键字表示:
char someCharacter = 'f';
Java中全部的字符都用单引号表示。同时,双引号用来表示字符串。咱们稍后会讨论字符串。与往常同样,咱们能够经过下面的代码找出字符的范围:
Character.MAX_VALUE // Prints '???' Character.MIN_VALUE // Prints ''
为了让这个范围有意义,咱们能够将结果转换成整数(稍后会更多地介绍):
(int) Character.MAX_VALUE // Prints 65535 (int) Character.MIN_VALUE // Prints 0
可见,char类型是Java中惟一的无符号类型。换句话说,字符的取值范围为0到65535,每一个值映射到特定的字符。若是须要建立该范围以外的字符,能够将一对字符组合起来。
参见“在Java中反转字符串”(https://therenegadecoder.com/...)这篇文章中的例子。关注微信公众号:Java技术栈,在后台回复:java,能够获取我整理的 N 篇最新 Java 技术教程,都是干货。
byte基本类型
当咱们讨论二进制时,咱们讨论的其实是比特的概念。而8个比特组成一个字节,字节是Java支持的基本类型之一。本质上,byte类型只不过是取值范围为-128到127的8位整数。
能够猜到,字节由byte关键字表示:
byte someByte = 20;
一样,能够利用下面的代码片断来确认byte类型的取值范围:
Byte.MAX_VALUE // Prints 127 Byte.MIN_VALUE // Prints -128
根据个人经验,byte类型在读取和处理原始数据时很是有用。可是通常而言,咱们不会使用它,由于取值范围过小了。推荐:为何byte取值-128~127? 这是为何呢?
short基本类型
short是另外一种整数类型,但它占用的空间要比int类型更小。实际上,它的占用空间正好是int类型的一半,为16位,由short关键字表示:
short someNumber = 11;
short类型的取值范围也只有整数的一半,咱们能够用下述代码确认:
Short.MAX_VALUE // Prints 32767 Short.MIN_VALUE // Prints -32768
在实际应用中,short只有65546个可能的值。在内存空间和磁盘空间受限的状况下,咱们会使用byte和short。但在其余状况下,在定义整数时默认使用int更为安全。
long基本类型
与short相反的是long基本类型,即长整数。该类型用来表示比int类型还要大的很是大的数。long类型是64位有符号整数,其取值范围超过了10的18次方。一般,长整数用long关键字表示:
long someBigNumber = 1013401346173L;
下面的代码能够查看64位值究竟有多大:
Long.MAX_VALUE // Prints 9,223,372,036,854,775,807 Long.MIN_VALUE // Prints -9,223,372,036,854,775,808
也许,long能够用来计算光在必定时间内走过的距离。光在一秒内大约传播30万公里。若是编写一个程序来跟踪光走过的距离,那么7秒后int类型就超出范围类,而long类型可以计算大约975年。
不相信吗?能够看看这个gist
(https://gist.github.com/jrg94...)中的计算。
float基本类型
虽然咱们一般使用64位浮点数类型double,但Java还支持另外一种浮点数类型,叫作float。但与int相似,Java默认状况下使用double表示浮点数。无论怎样,咱们能够用float来表示32位浮点数类型:
float someNumber = 11.4f;
float类型的范围以下:
Float.MAX_VALUE // Prints 3.4028235E38 Float.MIN_VALUE // Prints 1.4E-45
可见,32位浮点数的范围和精度都要小得多。若是不须要double的精度,同时节省一半的空间,那么能够选择float类型。
boolean基本类型
最后咱们来讨论一下boolean类型。定义布尔类型可使用boolean关键字:
boolean isBool = true;
布尔类型有些特殊,不像其余基本类型那样,它们表示的不是数字值。实际上,以前使用的MAX_VALUE和MIN_VALUE技巧在这里不能使用。相反,它表示的是true或false,即真和假。
在此,我不打算详细介绍布尔类型,由于在Java中作任何事情都会涉及到布尔类型。尽管如此,咱们一般不会明确地声明布尔类型。相反,许多代码逻辑中的比较操做的结果都是布尔类型。)
原文: https://dev.to/renegadecoder9...
做者:Jeremy Grifski,译者:弯月,责编:郭芮
出品:CSDN(ID:CSDNnews
推荐去个人博客阅读更多:
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
以为不错,别忘了点赞+转发哦!