欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaSE_04 数据类型

程序员文章站 2022-07-14 11:10:33
...

JavaSE_04 数据类型

1.基本数据类型

基本数据类型也叫做值类型。

四类八种基本数据类型:

整数型:byte、short、int、long

浮点型:float、double

字符型:char

布尔型:boolean

数据类型 关键字 内存占用 取值范围
字节型 byte 1个字节 -128~127
短整型 short 2个字节 -32768~32767
整型 int(默认) 4个字节 -2的31次方~2的31次方-1
长整型 long 8个字节 -2的63次方~-2的63次方-1
单精度浮点数 float 4个字节 1.4013E-45~3.4028E+38
双精度浮点数 double(默认) 8个字节 4.9E-324~1.7977E+308
字符型 char 2个字节 0-65535
布尔类型 boolean 1个字节 true false

2.引用数据类型

包括类、数组、接口、枚举……

3.类型转换

由于Java是强类型语言,所有要进行有些运算的时候,需要用到类型转换。

运算中,不同类型的数据先转化位同一类型,然后进行运算。

容量由低到高分别是:byte,short,char,int,long,float,double

强制类型转换(显示)

一个 long 类型变量要转成 int 类型需要强制转换。

特点:代码需要进行特殊的格式处理,不能自动完成。

格式:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据;

注意:

  • 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
  • byte、short、char 这三种类型都可能发生数字运算,例如加法。
  • byte、short、char 在运算的时候,都会被首先提升成 int 类型,然后计算。
  • boolean类型不能发生数据类型转换。
long i = 100L;
int j = i; //报错
int j = (int)i;  

//数据溢出
int c = (int)60000000000L; //1705032704

//精度损失 
int b = (int)3.9; //3

//字符转换
//计算机的底层会用一个数字(二进制)来表示字符A。
int d = 'A'
System.out.println(d+1); //66 字符A被当作65进行处理

//byte + byte --> int + int --> int 
//byte会首先提升为int进行计算,所以结果需要用int接收
byte a = 40;
byte e = 50;
byte f = a + e; //报错

自动类型转换(隐示)

一个 int 类型变量和一个 byte 类型变量进行加法运算。

运算结果,变量的类型将是 int 类型,这就是数据类型的自动类型转换。

特点:代码不需要进行特殊处理,自动完成。

规则:数据范围从小到大。(与字节数不一定相关)

int i = 1;
byte b = 2;
//报错
byte x = b + j;
// int类型和byte类型运算,结果是int类型
int j = b + i;

4.注意

  • 字符串不是基本类型,而是引用类型。

  • 浮点型可能只是一个近似值,并非精确的值。

  • 数据范围与字节数不一定相关。例如float数据范围比long更加广泛,但是float是4字节,long是8字节。

  • 浮点数当中默认类型是double。如果一个要使用float类型,需要加上一个后缀F。如果是整数,默认为int类型, 如果一个要使用long类型,需要加上一个后缀L。 推荐使用大写字母后缀。

  • 计算金钱的话推荐使用 BigDecimal 来进行保存。