Java基础数据类型总结

开发工具与关键技术:
作者:曾浩源
撰写时间:2019年04月01日

整型
byte 1个字节 8位
范围:-2^7 到 2^7-1
short 2个字节 16位
范围:-2^15 到 2^15-1
int 4个字节 32位
范围:-2^31 到 2^31-1
long 8个字节 64位 在后面加L或者l
范围:-2^63 到 2^63-1
字符型char
浮点型 float double
布尔型boolean

int a=四种进制
十进制
二进制 0B或者0b 开头
在这里插入图片描述
八进制 0开头
在这里插入图片描述
十六进制 0X或者0x 开头
在这里插入图片描述

char c=’\u9999’; 输出 中文 香; chard=10000 输出✐
\n (\u000a)换行
\t (\u0009)水平制表符
\b (\u0008)空格
\r (\u000d)回车
\f (\u000c)换页
’ (\u0027)单引号
" (\u0022)双引号
\ (\u005c)反斜杠
float float1=1.5F;//float后面加f或者F
double double1=1.56564;//double后可以加d或者D

boolean bool=true;
boolean bool1=false;//一字节
例如:使用包装类转换
String str=“1651”;
int w=Integer.parseInt(str);
double s=Double.parseDouble(str);

类型 包装类 转换方式
byte的包装类 Byte Byte.parseByte()
int的包装类 Integer Integer.parseInt
short的包装类 Short Short.parseShort()
lonng的包装类 Long Long.parseLong()
char的包装类 Characher Character.toString()
float的包装类 Float Float.parseFloat()
double的包装类 Double Double.parseDouble()
boolean的包装类 Boolean Boolean.parseBoolean()

类型转换精度损失
在这里插入图片描述
无精度损失 例如:从小到大byte转short或int、long
有精度损失 例如:int转float或double 例子:
在这里插入图片描述
当从大转到小 例如:从int转到byte
当int intone=127时是正常的
在这里插入图片描述
当int intone=128时就很神奇了
在这里插入图片描述
当int intone=129呢?
在这里插入图片描述
原因是因为类型的转换造成的内存溢出
例如:intone=127时 原码是 00000000 00000000 00000000 01111111
而转换为byte时 没有移除 01111111 为127没毛病

当溢出时:
反码转到补码 +1
补码转到反码 -1

当intone=128时 原码:00000000 00000000 00000000 10000000
而转换为byte时 补码:10000000
补码转反码:10000000-1=11111111 第一位是表示正负符号不能变 1为负 0为正
反码再反:10000000 最前面的 数字 为正负的符号 1为负数 负000000为-128

当intone=129时 原码:00000000 00000000 00000000 10000001
而转换为byte时 补码:10000001
补码转反码:10000001-1=10000000
反码再反:11111111 最前面的 数字 为正负的符号 1为负数 负1111111为-127

在Java中 整数除以整数 等于整数
例如:5/2=2 直接把小数抛弃截断取整

Infinity正无穷 -Infinity负无穷 NAN非数
整数除以0 报错 必须有一个为浮点型
正数除以0.0(或者任意一个数为浮点型)等于Infinity正无穷
例如:10/0.0=Infinity;10.0/0=Infinity 反之:-10/0.0=-Infinity; -10.0/0=-Infinity
If(Infinity=Infinity)返回的是true -Infinity也是一样
当任意一个数是0.0 另一个是0或者0.0时 等于NAN
例如:0.0/0.0=NAN
If(NAN=NAN) 返回的是false

猜你喜欢

转载自blog.csdn.net/qq_41657790/article/details/88980470
今日推荐