Java数据类型详解
基本数据类型(8种)
整数类型
- byte 1个字节 -128-127
- short 2个字节 负的3万多到正的三万多 -32768-32767
- int 4个字节 负的20多亿到正的20多亿 -2147483648-2147483647
- long 8个字节 最大,需要在数字后加大写L表示long型
拓展
进制问题
2进制 8进制 10进制 16进制
0b开头 0开头 正常 0x开头 0-9 a b c d e f
比如 数字10的表示
int a = 10;// int a = 0b1010; int a = 012; int a = 0xa;
拓展
bit是数据存储的最小单位,而byte字节是数据处理的基本单位
1byte即1字节=8bit(8位二进制数)
1kb=1024B;1Mb=1024kb;1GB=1024MB;1tb=1024gb;
浮点数
- float 4个字节 同样需要在数字后面加大写的F来表示;
- double 8个字节 默认类型
拓展
银行金融业务
尽量避免或者不使用浮点型比较!!!
浮点型 有限 离散 舍入误差 大约 接近但不等于
进行比较应选择Bigdecimal类
字符型
- char类型 占2个字节
拓展
字符是指计算机中使用的字母,数字,字,符号
编码Unicode表
u0000-uFFFF 大约表示60000多个 65536
char a = ‘\u0061’; char a = ‘a’;
字符本质上还是数字,只不过经过各种编码,把字符转成数字,或者数字转成字符
转义字符
布尔类型
- boolean true/false 对或者错 占一位即1bit
拓展
boolean flag = true; if(flag==true){}//新手 if(flag){}//熟练
引用数据类型
类、数组、接口······不是基本数据类型就是引用数据类型
基本数据类型初始化都是0或者0.0;u0000;布尔类型默认为false
但是除了基本数据类型之外的数据类型初始化值都为null
数据类型转换
低容量----------------------------------------->高容量
byte short char int long float double
- 强制转换 高容量------>低容量 格式: (低类型名)高类型变量名
- 自动转换 低容量------>高容量
标签:Java,字节,int,数据类型,long,years,详解,数字 From: https://www.cnblogs.com/codfishkang/p/17201050.html注意:
不能对布尔类型操作
不能把对象转换为不相干的类型
高精度转低精度时,强制转换
高转低时,容易发生内存溢出,或者精度问题
操作比较大的数时,注意溢出问题
int money =10_0000_0000;//JDK7新特性,数字可以用下划线分割开 int years =20; //int total = years * money; 计算时内存溢出 //long total = years *monry; 转换操作之前内存溢出就已经发生 long total = ((long)years)*money;//long total = years*((long)money);