贯穿整个高级语言中,数据类型也只有那么些,int、string、char、boolean这几种常用的,本篇内容将为你介绍java里的8种基本数据类型,不包括引用数据类型!
8种基本数据类型哪八种:

每种数据类型在底层占用的空间都是不一样的,上图中清楚的表示了8种数据所占空间的大小,主要了解的是单位以及每种数据类型所承受的值是什么。
首先说单位:
- 这里的单位是字节,1字节 = 8bit位 = 一个二进制位1/0
所有计算机都能够识别二进制位,这些基本的数据类型也都是经过了包装后形成的明显的关键字;
-
实际上的底层依旧是以二进制来计算的。
1(字节) = 10101010(二进制位)
负数在二进制中的解释:
- 关于java中的数字类型,数字都是有正负之分的,所以在数字的二进制当中有一个二进制位被称位“符号位”。并且这个“符号位”在所有二进制的最左边,0表示正数,1表示负数。
byte类型:
- Byte类型是8种数据类型中占用空间最小的结果是数值的类型,占用1个字节
- Byte类型的取值范围处于[-128 ~ 127],超出范围将会编译报错;
short类型:
- Short类型使用不算多,他的取值范围是[-32768 ~ 32767];占用2个字节
int类型:
-
Int类型重点说明;在java中“整数型字面量”被默认当作int类型来处理!
在问题发出前先说明int类型的取值范围:
- [ -2147483648 ~ 2147483647],占用4个字节
问:下列声明是否有无问题?
long z = 2147483648;
结果是编译报错:

- 原因:在一开始整数型字面量默认当作int类型处理,2147483648已经超出int类型的取值范围所以报错;
- 有人说:不是声明的long类型的z变量来接收数值吗?怎么会报错?
- 因为是在一开始的时候就已经报错所以long声明的z无法进行 类型转换
请记住:java的运行一定是先编译,再进行运行!编译报错怎么样也无法运行!
如何解决这样的问题?
long z = 2147483648;// 错误 ×
long z = 2147483648L;// 解决错误 √
在字面量的后面加上L即可,这样就会在一开始的时候被识别为long类型;
也可以将值缩小让值在int类型的可承受范围内,这样java会自动帮你把类型转换
由于“整数型字面量”被默认当作int类型来处理并且int类型所可取的值也很大很广泛,所以int类型也是最常用的数值类型
long类型:
-
Long类型的取值范围:(-9223372036854774808~9223372036854774807)
这个取值范围是不是很夸张?在底层占用8个字节,所以Long基本包括了程序员所需要的数值
突破了千亿的取值范围还不包括负数,已经完完全全够了。
如果还要大,在JAVA中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,具体作用上网搜搜用法就可以了;
float类型:
float是浮点类型中的单精度,占用4字节;
- 需要注意的是:java中所有的浮点型字面值,默认被当作double类型来处理;
所以在以下代码中是会编译报错的:
float z = 12.5;
- 如果想该字面值以float类型来处理,需要在字面值后面添加F/f
float z = 12.5f;
double类型:
- double类型占用8字节
- 但是因为浮点型字面量都是默认当作double类型处理的,所以double类型用的还算挺多,因为省事?而相对来说,double的精度很低;
- 在需要精度高的计算时,会使用BigDecimal
boolean类型:

- Boolean类型只有两个值:true\false;占用1个字节
因为占用空间很少而且更加直观,所以经常被用于if判断;
char类型:
- 一个中文占用2个字节,char类型正好是2个字节;
- 所以java中的char类型变量可以存储一个中文字符
注:
以下声明报错: 123 属于字符串,该使用""双引号引起来
char k = '123';
以下声明报错: ** “a” 属于字符串,k变量是char类型**
这类型不兼容,编译错误;
char k = "a";
char类型正确声明方式:
char k = 'b';//可以是单个中文字符 '好'
结束语:请牢记这八种数据类型,在开发和学习中会经常的用到,应该说程序员工作的时间段都会用到!

本文详细介绍了Java中的8种基本数据类型,包括byte、short、int、long、float、double、boolean和char,以及它们的取值范围、内存占用和使用注意事项。特别指出整数字面量默认为int类型,浮点型字面量默认为double类型,以及如何通过后缀避免编译错误。此外,还强调了boolean类型的true/false和char类型存储单个字符的能力。
5415

被折叠的 条评论
为什么被折叠?



