前言:什么是变量?
Java中提到基本数据据类型就要说一说变量了,什么是变量呢?
变量的定义:Java变量的定义在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。
简单来讲就是,程序运行期间,内容可以发生改变的量,可以将它理解为一个容器来存储这些临时数据.
那么这些来临时数据都是有类型的,其中就有我们今天要了解的内容:基本数据类型
基本数据类型
定义:
基本数据类型,也称内置类型,是可以在栈直接分配内存的,Java保留基本数据类型最大的原因也在此:性能。
分类:
整 型: byte short int(默认) long
浮点型: float double
字符型: char
布尔型: boolean
占用内存和取值范围:
字节数(占用空间) | 位数 | 取值范围 | ||
---|---|---|---|---|
byte型 | byte | 1 | 8 | -2^7~2^7-1 |
短整型 | short | 2 | 16 | -2^15~2^15-1 |
整数型 | int(默认) | 4 | 32 | -2^31~2^31-1 |
长整型 | long | 8 | 64 | -2^63~2^63-1 |
布尔型 | boolean | 1 | 8 | true false |
字符型 | char | 2 | 16 | 0~2^16-1 |
单精度浮点型 | float | 4 | 32 | -2^31~2^31-1 |
双精度浮点型 | double(默认) | 8 | 64 | -2^63~2^63-1 |
通过观察我们可以看得出,字节数都是以1,2,4,8来算的,即2的0次幂,2的1次幂.2的2次幂.2的3次幂;
而位数都是字节数*8,即2的3次幂,那么究竟为什么是这样呢?2又是哪里来的呢?
2指的是计算机中,所有数据都是以二进制的方式进行存储,一位是一个bit,一个字节是三个bit,所以字节数和位数就这样出现了
由于数据在计算机中以二进制进行存储,所以他的取值范围就是2的位数次幂,由于数字有正数负数和0,以byte举例,负数就占了一半即-2^7,剩下的数有正数和0所有就占了2^7-1.
char类型和boolean类型分为是字符和布尔,所以没有正负之分,所以范围就是图表中,
布尔类型是只有两种返回值:true和false
字符类型只有字符即ASCII码值
注意:
在Java中我们整型默认使用的是int类型,浮点型默认是double;最小的单位是byte,也是最基本的单位
类型转换
String是引用数据类型,是字符串
int + double = double;
int + char = int;
int + String = String;
double + char = double;
double + String = String;
char + String = String;
boolean类型不能发生数据类型转换
-
基本数据类型转换(隐式)
自动类型转换:
容量小的类型自动转换为容量大的数据类型;
在参与运算的时候,byte、short、char会首先默认转换为int类型,他们相互之间不会转换;
boolean类型不能转换为其他数据类型;
-
强制类型转换(显示)
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,会存在精度丢失的可能
目标类型 变量名 = (目标类型)(被转换的数据);
使用的时候加上强制转换符:()
可能会造成精度降低或溢出
int a= 64;
byte b =(byte)a;
练习题
你觉得c的值是什么呢?
byte a=10;
byte b=20;
byte c=a+b;
System.out.println(c);
答案下期揭晓,有想法的同学们可以发在评论区