几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的。 这样,初学者的内容就更容易消化。 首先,我要介绍有关Java的8种原始类型的所有信息。
Java基本类型
正如本文标题所暗示的,Java语言内置了8种原始类型。 在以下小节中,我们将不按特定顺序查看所有八个基本类型。 对于每种原始类型,我们将描述如何使用它以及它的局限性。
原始类型
首先,Java整数是32位带符号的值(表示正值或负值),并由int
关键字表示:
int someNumber = 10 ;
当然,像所有基本类型一样,整数有其局限性。 由于它们是32位的,因此我们要查看的范围是-2,147,483,648到2,147,483,647。 有很多数字! 当然,我们可以使用DrJava的交互窗格中的便捷技巧来确认该范围:
Integer.MAX_VALUE // Prints 2,147,483,647 Integer.MIN_VALUE // Prints -2,147,483,648
自然, int
可能是用于简单计算的最常见的整数类型。 如果您需要更多的范围内,看到long
的下方。
双重原始类型
与int
不同,Java double是64位浮点值,它们由double
关键字标记:
double someNumber = 110.55 ;
提醒一下,浮点数只是实数。 换句话说,当我们使用双精度时,我们可以访问小数点。
由于双精度数是64位的,因此与整数相比,我们可以访问的数字明显更多。 如果我们使用相同的“交互”窗格技巧,则可以找出潜在值范围的巨大程度:
Double.MAX_VALUE // Prints 1.7976931348623157E308 Double.MIN_VALUE // Prints 4.9E-324
请记住,负指数意味着极小的数字(与极度负的数字相对),因此我们并不是在寻找与整数相同的范围。
通常, double
是Java中浮点值的默认选择。 替代方法是float
。
字符基本类型
正如我们已经看到的,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到65,535,其中每个数字都映射到一个特定的字符。 为了创建此列表之外的字符,Java可以组合成对的字符。 请查看Java中的“反向字符串”示例。
字节原始类型
当我们谈论二进制时,我们谈到了一点概念。 好吧,一组八位组成一个字节,Java将其作为原始类型来支持。 byte
类型本质上只是一个8位数字,范围为-128至127。如所期望的,字节由byte
关键字表示:
byte someByte = 20 ;
与往常一样,我们可以使用以下代码片段来确认byte
类型的范围:
Byte.MAX_VALUE // Prints 127 Byte.MIN_VALUE // Prints -128
以我的经验, byte
类型对于读取和处理原始数据很有用。 但是,总的来说,由于电位值的范围太小,我们可能不会使用它。
短原始类型
short
类型是另一个整数类型,但是它比int类型占用更少的空间。 实际上,它只占用16位的一半空间,并用short
关键字标记:
short someNumber = 11 ;
就范围而言, short
类型仅将整数的一半作为时钟输入,但是我们可以像往常一样确认这一点:
Short.MAX_VALUE // Prints 32767 Short.MIN_VALUE // Prints -32768
出于实际目的, short
仅具有65,546个可能值。 当内存和磁盘空间不足时,通常同时使用byte
和short
byte
。 否则,使用int
是安全的,因为在声明整数时它是默认类型。
长原始类型
在频谱的另一端是long
原始类型。 该类型表示极大的整数,我们可能希望这些整数甚至大于int
类型可以提供的值。 long
类型是一个64位有符号整数,这意味着值的范围为5百亿分之一。
当然,我们表示与多头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
时间有用。 一秒钟后,光传播约3亿米。 如果我们编写了一个程序来实时跟踪光的距离,则int类型将在大约7秒后消失,而长类型可以计算出大约975年。 不相信我吗? 检查一下整个计算过程中的要点 。
浮点原始类型
虽然我们经常使用double
,它是64位浮点数类型,但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中所做的几乎所有事情的一部分。 也就是说,我们通常不会像这样明确声明它们。 相反,它们是比较的结果,这些比较驱动代码中的逻辑。 请查看下面的布尔运算符部分以获取更多信息。
想了解更多?
如前所述,该信息可以在Java的基本类型和变量文章中找到。 当然,现在该文章更容易阅读。
无论如何,再次感谢您的支持。 下次见!
翻译自: https://www.javacodegeeks.com/2019/08/8-primitive-types-java.html