本文共 1407 字,大约阅读时间需要 4 分钟。
java是强类型语言,必须为每一个变量声明一种类型。
一、共有8种基本类型:4种整型,2种浮点型,1种字符型,1种布尔类型。位(bit)是计算机最小单位,用0或1表示,也就是2进制。1个字节(byte)是8位。
1. 整型:表示没有小数部分的数值,可以是负数。
类型 | 存储需求 | 取值范围 |
byte | 1字节 | -128~127 |
short | 2字节 | -32768~32767 |
int | 4字节 | -2147483648~2147483647(正好超过20亿) |
long | 8字节 | -9223372036854775808~9223372036854775807 |
通常情况下,int最常用。特殊情况下,例如地球上的居住人数,那就要使用long,要加后缀L(推荐)或者l。byte和short用于特定场合,例如底层文件处理。
2. 浮点类型:表示有小数部分的数值,可以是负数。不能出现正无穷大、负无穷大、NaN(不是一个数字)的情况。
类型 | 存储需求 | 取值范围 |
float | 4字节 | 大约±3.40282347E+38F(有效位数为6~7位) |
double | 8字节 | 大约±1.79769313486231570E+308(有效位数为15位) |
double的数值精度是float的两倍,通常情况下都采用double。如果需要使用float类型,要加后缀F(推荐)或者f。没有后缀的浮点型数值,默认为double类型。
3. 字符型char:占2字节。表示单个字符,用单引号括起来,例如'A',但有些Unicode字符需要两个char值。在java中,char类型描述了UTF-16编码中的一个代码单元。不建议在程序中使用char类型,除非确实需要处理UTF-16代码单元。最好将String作为抽象数据类型。
4. 布尔类型boolean:只有true(成立)和false(不成立)两个值,用来判断逻辑条件。
二、相互间的转换
以上都是小转大,属于自动转换,其中:实线箭头表示无精度损失的转换,虚线箭头表示可能有精度损失的转换。如果是大转小,需要强制类型转换,也有可能有精度损失。
int a = 10; double b = 10.5; /** \* ①a从int类型自动转换为double类型 \* ②计算a+b \* ③得到double类型的值 */ double num0 = a + b; System.out.println(num0);// 输出20.5 /** \* ①②③相同 \* ④double类型的值赋给int类型,强制类型转换。 */ int num1 = (int)(a + b); System.out.println(num1);// 输出20,出现精度丢失的情况。
对两个数值进行运算操作,需要先将两个操作数转换为同一类型,然后再进行计算:
转载地址:http://osssl.baihongyu.com/