Java——数据类型扩展及类型转换

Java——数据类型扩展及类型转换

进制

进制:二进制0b、十进制、八进制0、十六进制0x

int i = 10;
int i1 = 010;//八进制0
int i2 = 0x10;//十六进制0x 0~9 A~F(16)

浮点数扩展

银行业务怎么表示?(钱)

答:使用Java中的BigDecimal数学工具类来表示。

浮点数比较

float f = 0.1f;
double d = 1.0/10;//0.1

System.out.println(f==d);

结果:

在这里插入图片描述

float d1 = 1321231231f;
float d2 = d1+1;

System.out.println(d1==d2);

结果:

在这里插入图片描述

由此可见,两浮点数进行比较时,最好完全使用浮点数进行比较

字符扩展

所有的字符本身还是数字

编码——Unicode表(u0000~uFFFF):(97=a 65= A) 一个字符2字节 0~65536

char c1 = 'a';
char c2 = '你';

System.out.println(c1);

System.out.println((int)c1);

System.out.println(c2);

System.out.println((int)c2);

结果:
在这里插入图片描述

转义字符

\t 制表符

\n 换行

…等等

System.out.println("Hello\nWorld");

在这里插入图片描述

有趣的:

String sa = new String("HelloWorld");
String sb = new String("HelloWorld");
System.out.println(sa==sb);

String sc = "HelloWorld";
String sd = "HelloWorld";
System.out.println(sc==sd);

在这里插入图片描述

why?之后学习类与对象,从对象的角度出发,从内存来分析

布尔值扩展

boolean flag = true;
if(flag==true){}
if(flag){}

类型转换

int i = 128;
byte b = (byte)i;//内存溢出

强制转换 : (类型)变量名 高——>低

自动转换:低——>高

System.out.println(i);
System.out.println(b);

在这里插入图片描述

注意

1.不能对布尔值进行转换
2.不能吧对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题
System.out.println((int)23.7);//23
System.out.println((int)-24.45f);//-24
System.out.println((int)2);

在这里插入图片描述

溢出问题

当操作数比较大时,注意溢出

jdk7新特性,数字之间可以用下划线分割

int money = 10_0000_0000;
int years = 20;int total = money*years;//-1474836480,计算的时候溢出了
long total2 = money*years;//默认是int,转换之前已经存在问题了
long total3 = money*((long)years);//先把一个数转化为long
System.out.println(total3);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值