数据类型拓展和类型转换

关于Java数据类型的拓展和类型转换

拓展

整型拓展

二进制 在Java中输出二进制数时,在数字前面加上0b
八进制 在Java中输出八进制数时,在数字前面加上0
十六进制 在Java中输出十六进制数时,在数字前面加上0x

浮点数

像浮点数 它是有限的,离散的,接近但是不等于,最好避免使用浮点数进行比较
如果必须使用浮点数进行计算的话,可以使用一个数学工具类 BigDecimal

字符

讲到字符就得讲到编码Unicode 0-65536 其中每一个都对应着一个字符
强制转换可以将字符转化为数字,所有的字符本质还是数字
直接在输出时加上int 比如

System.out.println((int)C)

这样就可以将字符转换为整型

转义字符

\t 制表符
\n 换行符
" 双引号
’ 单引号字符
\ 反斜杠字符
\r 回车
\t 跳格
\b 退格
\f 走纸换页

类型转换

首先对上面的所有类型进行容量的比较
容量 从低到高
byte — short,char—int—long—float—double
我们进行类型转换会用到这个

public class conversion {
    public static void main(String[] args) {
        int i=128;
        byte b=(byte) i;

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

这就是将int 类型的128转换成byte类型
你会发现,转换后变成了-128
这就涉及到我们下面将说到的溢出问题
byte类型最大只能表示到127,超过后就会变成-128
还有jdk7中可以将数字间用下划线分割开,看的更加仔细,比如1000000000可以表示成10_0000_0000

溢出问题

这就是每个数据类型的容量,溢出后得不到结果,关于每个类型的容量,可以看之前的文章
还有强转换,就是从低容量的转换到高容量的
必须得转换

public class conversion {
    public static void main(String[] args) {
    
        int a=10_0000_0000;
        System.out.println((long)a);
    }
}

上面这样就可以将int 转换为long

注意
不能对布尔值进行转换
不能对象类型转换为不相干的类型
再把高容量转换到低容量的时候强制转换
转换时可能存在溢出,或者精度问题
浮点数转换到整型会丢失小数部分,精度不够

下面就是溢出问题的解决方式
而且得在使用数据时就进行转换,后面转换结果时,是没有用处的

public class conversion {
    public static void main(String[] args) {
      //操作比较大的数时,要注意溢出问题
        int money=10_0000_0000;
        int years=20;
        int total=money*years;
        int total1=money*years;
//值为-1474836480,计算时溢出
        long total12=money*years;
//默认时int,转换之前已经存在问题
        long tatal123=money*(long)years;
        //先将一个数据转换为long 可以运行
        System.out.println(tatal123);
    }
}

一些反思

今天在帮助同学安装jdk时还是遇到了一些问题
1.安装时得放在环境变量中,用户变量中是没有用的
2.有一些电脑中,后缀名是默认隐藏了的,得调出来,进行更改

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值