一、 JAVA基本数据类型
为什么要定义数据类型?
数据类型的划分,使计算机的内存得到了合理的分配,为数据匹配合适的数据类型,就好比为不同的脚码匹配合适的鞋子。不同的数据有相应的数据类型,合理的分配数据类型,可以极大的提高计算机的计算速率。倘若不分数据类型而用统一的数据类型标准,一些精度较低或者长度较短的数据就要占用和那些精度较高长度较长的数据一样的空间,会造成很大的空间浪费,不易于计算机的数据管理,同时降低了计算机的计算速率。
JAVA中有八种基本数据类型
数据类型 | 名称 | 字节数 | 封装类型 | 取值范围 | 需要注意 |
---|---|---|---|---|---|
byte | 字节型 | 1 | Byte | -128 ~ 127 | — |
short | 短整型 | 2 | Short | -2^15 ~ 2^15 -1 | — |
int | 整形 | 4 | Integer | -2^31 ~ 2^31-1 | — |
long | 长整型 | 8 | Long | -2^63 ~2^63-1 | 赋值时在后面加上L(大小写L均可,为了与1进行区分,最好写L) |
float | 单精度 | 4 | Float | 1.4E-45~3.403E38 | 赋值时必须在后面加上F或 f(必须加) |
double | 双精度 | 8 | Double | 4.9E-324~1.798E308 | 赋值时可以在后面加上D或d(也可以不加) |
char | 字符型 | 2 | Character | 0-65535 | 存储时为Unicode码,在内存中是以16位无符号数据表示。(用单引号赋值) |
boolean | 布尔型 | JVM没有明确规定,可能为1个字节 / 1个比特位 | Boolean | 只有false和ture两个取值 | — |
二、变量
有了数据类型,就好比有了不同码数的鞋子,这些鞋子如何发挥它的作用,就需要有不同码数的脚来进行匹配,在计算机中,我们将这些不同码数的脚称之为变量,何为变量,通俗来说,就是在计算过程中可以改变的量。比如要计算一个圆的面积,我们都知道圆面积的计算公式,S=π*R^2,将这个公式给计算机,计算机不像人脑,它并不知道你在计算圆的面积,它只会根据程序的顺序,从存储器中取出数据进行指定的运算和逻辑操作,这里的数据就存储在变量中,而变量就相当于存储数据的容器,这个容器有多大,取决于你所定义的该变量的数据类型是什么。
(一)变量命名规则与规范
不同的变量有不同的名字,就好比喝水使用的容器叫杯子,吃饭使用的容器叫碗…
规则
java中对变量的命名也有一定的规则(规则,就是必须要遵守的,不遵守,那就回报错)
1:由字母、下划线(-)、数字、美元符($)组成。
2:不能以数字或者下划线开头。
3:变量在使用之前一定要进行初始化。
4:区分大小写,例如A和a就是两个不同的变量。
5:不能是关键字和保留字,但可以包含关键字和保留字。
规范
1:变量名必须见名知意
2:遵守驼峰命名法,首字母小写,多单词构成时,后面的单词首字母大写(xxxYyyZzz)
(二)基本数据类型与变量
1:字节型变量
byte 变量名=初始值;
eg:
取值范围:
1:短整型变量
short 变量名=初始值;
eg:
取值范围:
3:整型变量
int 变量名=初始值;
eg:
取值范围:
4:长整型变量
long 变量名=初始值L;
eg:
取值范围:
5:单精度变量
float 变量名=初始值F;
eg:
取值范围:
6:双精度变量
double 变量名=初始值;
eg:
取值范围:
7:字符类型
char 变量名='初始值'
eg:
8:布尔类型
Boolean 变量名=初始值;
eg:
(三)溢出
当数据大于所定数据类型范围时,就会产生溢出,就好比你给一个300ml的杯子导入了 350ml的水,很显然,它会溢出来。
但是,计算机中的数据可不像水那样直接流出来,当数据超过数据类型的取值范围时,它会怎么做呢,以一段代码来掩饰。
按照正常思维,int类型最大值加1应该是(2^15) , 最小值减1应该是(-2^15-1),但是验证之后并非是这样,这就要根据计算机底层计算原理来说明,总之,当数据超过所属数据类型的取值范围后,不会取值比该数据类型的最大值还要大或者还要小,除非进行强制类型转换,它的取值会按照这样的规律进行:
(三)基本数据类型之间的运算规则
1:自动类型提升
当容量较小的数据类型的变量与容量较大的数据类型的变量之间做运算时,结果自动提升为容 量较大的数据类型。
byte、char、short---->int—>short—>float—>double
注意:byte、char、short三种数据类型的变量之间做运算时,结果均为int类型。
2:强制类型转换
需要用强制类型转换符:()例如
结果:
注意:强制类型转换可能会造成精度的损失,为什么说可能呢,比如,你将一个350ml的水杯内350ml的水,倒入300ml的水杯,这就会造成水的损失,但是,当你将一个350ml的水杯内100ml的水,倒入100ml的水杯,这样就不会造成水的损失。
例如
结果:
结果: