1、Java的基本数据类型只有8种分别是byte,short,int,long,float,double,char,boolean(注:String不是Java的基本数据类型)
数据类型 | 大小/位 | 可表示数据范围 |
byte(字节) | 8 | -128~127 |
short(短整型) | 16 | -32768~32767 |
int(整型) | 32 | -21亿多~21亿多 |
long(长整型) | 64 | -2^63~(2^63)-1 |
float (单精度) | 32 | -3.4E38~3.4E38 |
double(双精度) | 64 | -1.7E308~1.7E308 |
char(字符) | 16 | 0~65535 |
boolean(布尔) | - | true或false |
(附:long 和double都是64位。为什么double表示的范围大那么多呢?)
1.1、数据类型转换
1.1.1、自动类型转换:小类型到大类型
1.1.2、强制类型转换:大类型到小类型
强转有可能会溢出或精度丢失
1.1.3、数据类型从小到大的顺序为:byte => short(char) => int => long => float => double
1.2、赋值和运算
1.2.1、整数直接量可以直接赋值给byte,short,char,但不能超出范围
char c = 97; //char类型形式为字符,实质是码int,保存一个整型。 //根据Unicode字符集编码,每个字符都有一个相对应的码
1.2.2、byte,short,char型数据参与运算时,先一律转换为int再运算
short b1 = 5; short b2 = 6; short b3 = (short)(b1+b2); //这里的b1和b2运算时自动转为int型,所以必须强转为short型才能赋值给b3
1.2.3、 赋值
直接量超范围为编译错误,运算时超范围为溢出
long a = 1000000000*2*10L; System.out.println(a); //200亿L long b = 1000000000*3*10L; System.out.println(b); //溢出了 long c = 1000000000L*3*10; System.out.println(c); //300亿L //使用long型进行大数值运算时,最好在第一个数后写上L //说明该数字是long型,避免默认成整型运算
//注:长整型的直接量,需在数字后加L或l
1.2.4、常用数据单位转换
1G=1024M(兆)
1M=1024KB(千字节)
1KB=1024B(字节)
1B=8Bit(位)
1.2.5、基本类型 “=” 号是对变量赋值,引用类型“=”号是让引用变量指向一个地址值