一、什么是数据类型
说到数据类型,这个还得讲一下计算机的计算,计算机是一种采用二进制来进行计算、处理的机器。
所以我们在计算机屏幕上所看到的一些文字、数字、这个其实在计算机中是以二进制的数据进行存储。
知道了这个之后,我们再来说数据类型,数字1、汉字“我”,这个对于我们人来说,是很简单的,1就是数字,“我”是一个汉字,但是对于计算机来说,它并不知道这个是什么玩意,所以你得告诉它,1这个东西是个数字,“我”这个是个汉字。数据类型就是对于这些数据的一个定义。
二、数据类型有那些
Java中,数据类型分为两种:基本数据类型 和 引用数据类型 。
三、基本数据类型
Java中给定了 8 个基本数据类型,分别是:
byte short int long float double char boolean
其中byte、short、int、long被称为整数类型;
float、double被称为浮点类型;
char被称为字符类形;
boolean是布尔类型;
每一种数据类型都有他们的大小和定义方式,包括取值,废话不多说,直接上图:
当然,在这里还得说一个东西,叫字节,我这个图里面没有说。
字节:字节(Byte )是计算机中用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。我们上面一个byte大小是占了8位,也就是8bit,1字节=8bit,所以,一个byte占了一字节。
(注意 Byte 和 byte 这个是两种东西,别弄混了!!!)
四、引用数据类型
除去这些个基本数据类型,剩下的可以被称为引用数据类型。
他们可以包括 类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型
举例:String 这个就是个典型的引用数据类型!
五、基本数据类型的定义和使用
(原本这个应该分开说,后来想想算了,一起来吧)
1.整数类型(以下的四个都是整数!!)
上面我们说了,整数类型有四个:byte、short、int、long
byte
比特,这个是一个常见 的基本数据类型,你在学习IO的时候,会经常用这个东西。byte定义的长度是 负128~正127,占用字节大小是1字节,大约存储在计算机是这个样子的:
1byte 最小:11 111 111 这个第一个1 代表着符号,表示负,计算是 2的7次方 也就是 -128
1byte 最大:01 111 111这个第一个0 代表着符号,表示正,计算是 2的7次方减1 也就是 128-1=127
因为第一位数字不做计算(第一个数字是表示正负的),所以不计入次方中,也就是2最高也就7次方,所以最小的值是负的2的7次方
但是又因为0这个特殊的数字,我们将0给了最小的里面,所以最大的要减1。
排序:-128 .........0 1 2 3 ...... 127是这样滴。
它的默认值是0!(别以为默认值不重要,一定要牢记这些,对你以后的开发会有很大的好处!)
short
这个我是不咋常见,貌似也就当时学习的时候用了一下,然后。。。
short定义的长度是-32768到32767,这个相比这个byte长了很多很多,它在计算机中占用2个字节,也就是16位,所以要比这个byte长很多很多。
这个玩意和byte一样,数字的第一位是控制正负的:
最小值:2的15次方(负的)
最大值:2的15次方-1
它的默认值也是0!
int
这个在Java中经常用,它在计算机中占用了4个字节,占用位数32位,它相比前俩,大的已经够够的了,我个人觉得已经很大了。
最小值:- 2,147,483,648 这个是 负的2的 31次方
最大值:2,147,483,647 这个是2的31次方减一
它的默认值也是0!
long
Java中常用,但是,一般int就够用了,反正我是不用,这个太大了~~~,继续说,这个占用8字节!8字节啊,占用位数64位。属于这几个当中的大哥人物。
最小值:-9,223,372,036,854,775,808 (反正我已经数不过来了)负的2的63次方
最大值:9,223,372,036,854,775,807 (哦买噶,太太太大了~~) 2的63次方-1
默认值是 0L (注意,不是0,而是0L!!!)
2.浮点类型(是我们说的那些个带小数点的)
浮点型的有俩,一个是float,一个是double
float
float占用4个字节,和int占用大小一样,同样也是32位的;
double
double占用的是8字节,和long占用大小一样,同样也是64位的;
float有效的小数位是6-7位,而double是15位!所以相应的,float被称为单精度浮点数,而double是双精度浮点数
在Java中默认声明的小数是double类型的,如double d=4.0,如果声明: float x = 4.0则会报错,需要如下写法:float x = 4.0f或者float x = (float)4.0,其中4.0f后面的f只是为了区别double,并不代表任何数字上的意义
3.字符类形
char
在我们基本数据类型中, 只有一个是字符型,就是这个char,我们来说说它。
在Java中,char占2个字节,16位;这个里面也可以放数字,也可以放文字,比如说汉字、英语字母等
而且,每一个char只能定义一个字符,不能有多个:
char a=‘a’;这个是对的
char b = ‘ab’ 这个是错误的
还要说明的一点,有一些字符、操作需要转义才可以输出,不然无法输出你所需要的,可能我说的不明确,来,直接看代码
报错了,错误原因:Invalid character constant,我们通过google翻译->无效的字符常量
这会儿你就需要转义字符了
OK,编译器通过,并且完美输出,像这样的转义字符,有很多,我就不列举了,直接百度查找,连接:Java转义字符
除去这个转义字符之外,还有一个叫做Unicode码,这个码是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
这个Unicode码有一个表的,我用别人的去说一下吧:
看,如果我现在想输出第一行,倒数第二个字:与,我应该怎么输出?废话不说,直接上代码:
\u + 4e00 中的 4e0 + 列 E 组合成 \u4e0E
大家可以找找自己的名字所对应的字是那个,将他输出出来
4.布尔类型
这个类型只有两个值,一个true,一个false,要么是对,要么是错;
这个是很特殊的类型,仅占一个字节,8位。
这个经常使用,要知道,就两个值!!
我觉得这个介绍已经可以了,大家可以好好看看,慢慢来消化,打好基础!