数据类型和分类------基本数据类型

在java中数据类型整体分为两大类:

    1)基本数据类型/原生数据类型,共8个

          1:数值型

                        整数型:byte、short、int、long

                                      不同的数据类型在内存中所占的内存空间大小也不一样。

                        小数型:float、double

          2:字符型:char,字符就是字母/符号

          3:布尔型:boolean,表达对与错,true,false

    2)引用数据类型/对象数据类型

           类/接口/数组

数据类型和分类------基本数据类型

这张图就可以简单明了的看出数据的分类。

首先是整数类型(byte-short-int-long)

整数常量的四种表示形式:

1:二进制整数:0B或者0b开头,如 int a = 0B110;

2:八进制整数:要求以0开头,如 int a = 012;

3:十进制整数:如 int a = 17;

4:十六进制整数:0X或者0x开头,如 int a = 0x12;

数据类型和分类------基本数据类型         

数据类型和分类------基本数据类型     

从上面的程序以及之前的程序可以看出,变量其实就是给常量起一个名字,以后就不再单独变量常量各展示一遍了,其实是一样的效果。上述的程序就是展示了四个整数类型,下面继续展示一下,byte、short、int、long的区别。

数据类型和分类------基本数据类型

从这幅表格中我们可以看到,byte、short、int、long唯一的不同也就是存储空间的容量大小不一样。1字节=8位二进制位,我们在编程的时候根据具体需要存储的数据去选择合适的数据类型,一般使用int即可。

数据类型和分类------基本数据类型

数据类型和分类------基本数据类型

上述程序主要展示了byte、short、int、long的区别,这里说一下,在声明long型变量时,后面要加上“l”或者“L”,一般建议使用“L”,因为小写的l容易与1混淆。

我一开始写的程序是下图所示。

数据类型和分类------基本数据类型

数据类型和分类------基本数据类型

不明白,为什么第一个直接显示,下面几个数据会这么大,后来我将11000011改成了00000011测试,发现他的运行结果是9.

数据类型和分类------基本数据类型

数据类型和分类------基本数据类型

我才明白过来,第一个数据是1开头,没有其他类型数据开头的特点,所以默认他是十进制数据,而其它几个数据是0开头,而八进制整数就是以0开头,所以程序就将他认为是八进制的整数。而byte、short、int、long唯一的不同也就是存储空间的容量大小不一样。而1字节=8位二进制位,所以为了区分他们的不同,这里还是用二进制来区别。

接下来是小数类型(float-double)

小数类型又称为浮点类型,其中float表示单精度类型,double表示双精度类型,所谓的单精度和双精度,其本质还是所占存储空间的大小,单精度占4个字节,双精度占8个字节,但其实二者都不能表示精确的小数。

数据类型和分类------基本数据类型

java的浮点类型常量有两种表现形式:

          十进制形式:如3.14,2.33,10.0

           科学计数法形式:如3.14e-2,3.14E2,科学计数法表达式返回的结果是double类型。

数据类型和分类------基本数据类型

默认情况下,一个浮点类型的字面量默认是double类型。若要声明一个常量为float型的,则需在后面加上f或F,变量也是,double常量后面是d或D,可以省略。

数据类型和分类------基本数据类型

数据类型和分类------基本数据类型

接下来是字符类型(char)

数据类型和分类------基本数据类型

char类型:表示16位的无符号整数或Unicode字符,java对字符采用Unicode字符编码。

Unicode收集了世界上所有语言文字中的符号,是一种跨平台的编码方式,java的字符占两个字节,可以表示一个汉字。

编码:计算机只能表示0和1两个数,于是规定使用一个数字去表示一个特定的字符,比如a使用97表示。

char前256个字符和ASCII码中的字符重复。

char常量的三种表现形式:

              1:直接使用单个字符来指定字符常量,格式如:‘A’,‘7’

              2:直接作为十进制整数数值使用,但是数据范围在[0,65535](这是char数据类型的数据范围),格式如97,打印出来的就是ASCII码表对应的符号,97对应的就是a。

             3:和2一样,只不过表示的是16进制,格式如‘\ux’,x表示16进制整数;如97的16进制是61。那么表示为'\u0061'打印出来也是a。

数据类型和分类------基本数据类型

数据类型和分类------基本数据类型

         上述的程序就是char类型的演示,可以看到单个字符的输出char可以做到,那如果非要输出AB,那该如何,期待引用类型String的演示。

最后就是布尔类型(boolean)

数据类型和分类------基本数据类型

        boolean类型通常用于逻辑运算和程序流程控制(条件选择/循环),该类型的值只能是true或false,表示真或假。

和C语言不同,Java中不可以使用0或非0的整数来替代false和true。(其实在java虚拟机(JVM)中对boolean的处理也是用0表示false,非0表示true的)。

数据类型和分类------基本数据类型