Java_数据类型


变量就是申请内存来存储值。 java的两大数据类型:内置数据类型和引用数据类型

一、数据类型

共8种基本数据类型:
6种数据类型(4种整数型,2种浮点型),一种字符类型,一种布尔类型

数据类型 位数 描述
byte 8位 -128 (-2^7) ~ 127(2^7-1)
short 16位 -32768(-2^15) ~ 32767 (2^15-1)
int 32位 -2147483648(-2^31) ~ 2147483647 (2^31-1)
long 64位 -9223372036854775808(-2^63) ~ 9223372036854775807(2^63-1)
float 32位 默认值是 0.0f
double 64位 默认值是 0.0d
boolean true/false 默认为false
char 16位 Unicode字符 u0000 ~ uffff (0-65535)

二、引用类型

引用类型指向一个对象,指向对象的变量就是引用变量。
对象、数组都是引用数据类型
所有引用数据类型的默认值都是null

三、自动类型转换

自动转换:依据每种类型所占位数来排序,当把低位数类型赋值给高位数类型时,会发生自动类型转换。
由低到高:

四、强制类型转换

强制转换:将高位数类型装换给低位数类型
注意精度问题

public class TestDay {
	public static void main(String [] args){
		byte a = 127; 			// byte 占1个字节, 8位 范围为 -128-127
		int a1 = a;				// int 占4字节,32位,范围比 byte 大,所以可以自动转换
		int i = 128;
		// byte a = 128; 		// 128 超出 byte 范围,位数不够,此时会报错
		byte b = (byte)i;		// 需要进行强制转换	
		System.out.println(b);
	}
}

表达式的自动提升

算术表达式中包含多个基本类型的值时,表达式中的数据类型会发生自动提升。

  • 所有 byte、short、char 类型将会提升到 int 类型
原文地址:https://www.cnblogs.com/zeo-to-one/p/9471425.html