今天介绍一下java的基本数据类型以及数据类型之间的转换。
一、基本数据类型:
java的基本数据类型分为四类八种,分别是整型、浮点型,字符型,布尔型。
整型包含四种类型:byte、short、int、long。
浮点型包含二种类型:单精度 float、双精度double。
字符型: char, 例如:char gender = '男' ;
布尔型: boolean 布尔的数值只用两种:true、false。
数据类型 | 占用字节 | 二进制位数 | 范围 |
byte | 1 | 8 | -128 ~ 127 |
short | 2 | 16 | -32768 ~32767 |
int | 4 | 32 | -2147483648 ~ 2147483647 |
long | 8 | 64 | -9223372036854775808 ~ 9223372036854775807 |
float | 4 | 32 | 1.4E-45 ~ 3.4028235E38 |
double | 8 | 64 | 4.9E-324 ~1.7976931348623157E308 |
char | 2 | 16 | 0 ~ 65535 |
boolean | 1 | 8 | true、false |
基本数据类型所占的二进制位数可以通过数据类型的属性调用。
数值类型的范围可以通过包装类的MIN_VALUE、MAX_VALUE获取。
拿int类型举例
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
二、数据类型之间的相互转换:
除boolean类型外,其他七中基本数据类型之间都可以相互转换。
数据类型转换分为两种:自动转换 和 强制类型转换。
2.1自动类型转换
自动类型转换,只能从范围小的数据类型转为数据范围大的数据类型。
byte b = 10 ;
int i = b ;
//byte类型的 b 赋值给 int类型 时,就会自动升级为 int类型。
注意事项:
1. byte、char、short、int类型数据进行算术运算时,会把自己提升为int类型后,在进行计算,所以接收计算结果时,要么进行强制类型转换,要么 用int 类型的变量来接收。
byte b = 10;
int i = b + 5; //如果用 byte i = b+5;就会报措
2.当多种数据类型混合计算时,全部变量会提升为数值范围最大的类型,结果同样是数据类型最大的类型。(浮点型数据类型转换后会出现精度丢失现象)
int i = 5;
float f = 3.14f;
double d = 10;
double add = d + i + f;
System.out.println(add); //结果:18.140000104904175
强制类型转换
强制类型转换前提是类型必须兼容。在某些情况下,数据类型不会自动转换,而我们又需要他转换位我们所需要的类型,所以就需要强制类型转换。
通常情况下,强制类型转换是从范围大的数据类型转换为范围小的数据类型,如:从 int型转换为byte类型。
byte b1,b2,b3;
b1 = 10;
b2 = 20;
b3 =(byte) (b1 + b2);
System.out.println("byte类型b1和b2的和为:"+b3);
两个byte类型的数据相加时,自动提升为 int 类型,又想要让他赋值给另一个byte变量,就用到了强制类型转换。
转换格式:
数据类型 变量名 = (数据类型)被强转数据值;
注意事项:
String 和数值类型变量 拼接,的到的结果一定是 String类型的。
整理不易,欢迎各位点赞关注!!!!