目录
1.数据类型
八大基本数据类型
- byte占1个字节范围:-128——127
- short占2个字节范围:-32768——32767
- int占4个字节范围:-232——232-1
- long占1个字节范围:-264——264-1
- float占4个字节
- double占8个字节
- char占2个字
- boolean占1个位,其值只有true和false
long类型要在数字后面加上L/l
float类型要在数字后面加上F/f
- 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数;
- 字节(byte):是计算机中数据处理的基本单位;
1B(byte)= 8bit- 字符:是指计算机中使用的字母、数字、字和符号;
整数拓展
//整数拓展:二进制0b 十进制 八进制0 十六进制0x
int i1 = 10;
int i2 = 010;//八进制0
int i3 = 0x10;//十六进制0x
System.out.println(i1);//10
System.out.println(i2);//8
System.out.println(i3);//16
浮点数拓展
//浮点数拓展:离散 舍入误差 丢失精度
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f==d);//false
float f1 = 2323112321312f;
float f2 = f1 + 1;
System.out.println(f1==f2);//true
字符拓展
//字符拓展:编码 Unicode表 A-Z<a-z
//U0000 UFFFF
char c1 = 'a';
System.out.println((int)c1);//97
char c2 = '中';
System.out.println((int)c2);//20013
char c3 = '\u0061';
System.out.println(c3);//a
转义字符:\t \n \r...
2.类型转换
- 自动类型转换:容量小的类型自动转换为容量大的数据类型。
- 强制类型转换:将容量大的数据类型转换为容量小的数据类型。(可能造成精度降低或溢出)
Java中为什么给float类型变量赋值需要加F,而给byte、short赋值的时候却不需要呢?
JVM规范中所说,并没有说byte、short、int等占多少个字节,而是真正的有效位是多少。比如byte的有效位是1个字节,也就是-128到127。使用Java编程的时候,就只能用byte表示-128到127之间的数,而真正JVM实现,一般byte还是占用和int一样大小:4个字节。
也就说在JVM看来,byte、short、int都是同一个东西。这也就解释了为什么byte,short使用int字面量赋值的时候会不用强制转型。
byte a = 2; short b = 3;
因为编译器在编译的只需要根据字面值2,字面值3来确定是否超过有效值即可,并不用做深入的检查,因为他们在JVM存在的类型也是一样的。
byte a = 128;//溢出
然而double和float在JVM中存储是不一样的。
System.out.println(3.2f==3.2);//false
因此在使用double给float赋值的时候,会报错的。
本文由mdnice多平台发布
标签:类型转换,字节,int,float,数据类型,byte From: https://www.cnblogs.com/CGB1804Great/p/16884649.html