基本类型(八种)
概述
Java是一门强类型的语言,会把你的数据,分成很多种类型。
Java语言提供了八种基本数据类型,其中六种数字类型(四种整数型,两种浮点型),一种字符类型,还有一种布尔类型。
基本类型字节空间和取值范围测试public class DataTypeSize {
public static void main(String[] args) {
System.out.println("byte:"+Byte.SIZE/8+"字节("+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE+")");
System.out.println("short:"+Short.SIZE/8+"字节("+Short.MIN_VALUE+"~"+Short.MAX_VALUE+")");
System.out.println("int:"+Integer.SIZE/8+"字节("+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE+")");
System.out.println("long:"+Long.SIZE/8+"字节("+Long.MIN_VALUE+"~"+Long.MAX_VALUE+")");
System.out.println("float:"+Float.SIZE/8+"字节("+Float.MIN_VALUE+"~"+Float.MAX_VALUE+")");
System.out.println("double:"+Double.SIZE/8+"字节("+Double.MIN_VALUE+"~"+Double.MAX_VALUE+")");
System.out.println("char:"+Character.SIZE/8+"字节");
}
}
bit就是位,也叫比特位,是计算机表示数据最小的单位,1个字节等于8个bit
输出结果为:byte:1字节(-128~127)
short:2字节(-32768~32767)
int:4字节(-2147483648~2147483647)
long:8字节(-9223372036854775808~9223372036854775807)
float:4字节(1.4E-45~3.4028235E38)
double:8字节(4.9E-324~1.7976931348623157E308)
char:2字节
字面值前缀
二进制-0bSystem.out.println(0b101110011011011);//23771
八进制-0System.out.println(001);//1
System.out.println(010);//8
System.out.println(016);//14
System.out.println(055);//45
十六进制-0xSystem.out.println(0xfa8c10f);//262717711
char类型十六进制-uSystem.out.println('\u0061');//a
System.out.println('\u4e2d');//中
字面值后缀
long-Llong a= 123456789L;
float-Ffloat b =3.14F ;
double-Ddouble c = 3.0;
double d = 3D;
基本类型的类型转换
类型之间的大小关系
隐式转换(小类型转大类型)
小类型向大类型转换,直接转换即可byte a = 10 ;
long b = a ;
显示转换(大类型转小类型)
大类型向小类型转换,需要进行强制转换:用圆括号括起来目标类型,置于变量前double m = 9.9 ;
int n = (int) m ;
System.out.println(n);//小数转整数,小数位将被丢弃--n得到9
特例
数据范围小的能够自动向数据类型大的转换,但是有特例
int到float,long到float,long到double 是不会自动转换的,不然将会丢失精度
运算规则(5条)
计算结果的数据类型,与最大类型一致System.out.println(3/2);//int/int->int --整数,只会保存整数位--1
System.out.println(3/2f);//int/float->float--保留小数位--1.5
byte,short,char三种比int小的整数,运算时会先自动转换成intbyte a = 1;
byte b = 2;
byte c = a + b ;
byte c = (byte)( a + b ) ;//因为右侧的运算结果类型是int大类型,给左侧的小类型byte赋值需要强转
整数运算溢出
加后缀L,因为结果的类型会和最大类型一致,加了L就会把整数结果从原来的int变成longSystem.out.println(300000000*60*60*24*365);//659193856
System.out.println(300000000L*60*60*24*365);//9460800000000000
浮点数运算不精确System.out.println(0.9*0.8);//0.7200000000000001
浮点数的特殊值System.out.println(3.14/0);//Infinity
System.out.println(0/0.0);//NaN
总结
基本数据类型是Java基础,需要完全掌握八大基本类型的大小与范围,根据数据的不同设置相应类型的变量接收参数,熟知基本类型的转换规则与运算规则,才能进行准确的数据分析与计算。