java数据类型详细_Java 数据类型详解

自从有了二进制计数系统,1和0变成了字符,有了字符,就可以用来表示各种数据类型,有了数据类型,再抽像一步就是数据结构,各种各样的数据结构又组成了对象,对象可以在各种方法里被调用,不同的方法成为了服务中的一部分,各个服务构成了一个模块,不同的子模块变成了一个系统。因此,java数据类型是整个java知识体系中必不可少的一部分。

总的来说,Java数据类型可以分为二大类:基本数据类型和引用数据类型。其具体的的分类方法如下图所示:

229324e94f8d16beed6abdbb34a87982.png

从上面的图中不难看出:Java的基本数据类型主要包括:数值类型,字符类型和布尔类型。数值,字符和布尔是Java的设计者认为的构建世界的核心元素。通俗点来说,Java世界的所有系统,都是由这三种类型的基本单元组合和创建而成的。这也是大部分的编程语言的相似之处。

下面的表格可以让我们更加清晰的分别出各个数据类型:

f747947802d9a3872a1cca20d7980a79.png

e7c2e17bc2ae366c51835f7965b30fbd.png

数值类型又分为整数型和浮点型。

整数类型:byte、short、int、long

1.byte基本类型

我们在讨论二进制时,我们讨论的实际上是比特的概念。而8个比特组成一个字节,字节是Java支持的基本类型之一。本质上,byte类型只不过是取值范围为-128到127的8位整数。可以猜到,字节由byte关键字表示:

byte someByte = 20;

同样,可以利用下面的代码片段来确认byte类型的取值范围:

Byte.MAX_VALUE // Prints 127

Byte.MIN_VALUE // Prints -128

byte类型在读取和处理原始数据时非常有用,但是一般而言,我们不会使用它,因为取值范围太小了。

2.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更为安全。

3.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。

4.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

浮点类型:float、double

5.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类型。

6.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

7.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/code/reverse-a-string-in-java/)这篇文章中的例子。

布尔类型:boolean

7.boolean基本类型

最后我们来讨论一下boolean类型。定义布尔类型可以使用boolean关键字:

boolean isBool = true;

布尔类型有些特殊,不像其他基本类型那样,它们表示的不是数字值。实际上,之前使用的MAX_VALUE和MIN_VALUE技巧在这里不能使用。相反,它表示的是true或false,即真和假。

Java中引用类型分为四种,分别是类引用类型,接口引用类型和数组引用类型,如下所示:

Object object;             //类引用类型

Listlist;         //接口引用类型

int[] array;               //数组引用类型

和基础数据类型不同的一点是,引用数据类型可以赋值为null,也就是空的意思,如下所示:

Object object = null;             //类引用类型

Listlist = null;         //接口引用类型

int[] array = null;               //数组引用类型

常用的引用类型有很多,Jdk给我们提供了很多核心引用类型供我们使用,当然我们也可以自定义引用类型来使用(除了数据引用类型)。由于此类数据类型相对来说在java里用的较少,在这里我们就不过多的进行介绍了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值