动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Java 数据类型详解

06-18 18:05 466浏览
举报 T字号
  • 大字
  • 中字
  • 小字

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

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

 

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

 

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

 

 

 

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

整数类型: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条评论
要学习了
程序员要学习了

2篇文章贡献12275字

作者相关文章更多>

推荐相关文章更多>

必须掌握的30种SQL语句优化

不写代码你养我啊08-23 11:30

MySQL开发规范

达芬奇09-04 11:38

ES(Elasticsearch)支持PB级全文搜索引擎入门教程

HelloWorld09-29 17:28

Java面试中的hadoop面试题及答案整理

兔子06-15 17:15

数据库分类之速成篇

呵呵呀06-17 18:54

发评论

举报

0/150

取消