Java中的类型转换

如果你觉得你的java基础不太好,看看这道题;如果你觉得你的java基础还不错,也看看这道题。金三银四的面试期,会碰到很多的笔试题。很多都是在考察基础和算法。

public class Change {
    public static void main(String[] args) {
        byte a = (byte)-1;
        System.out.println(a);
        char b =(char)a;
        System.out.println(b);
        int c = (int)b;
        System.out.println(c);
    }
}

看一下输出:

下面来解析一下这道题:

第一步:int类型的-1强转为byte类型 还是-1 第二部:byte类型的-1转化为char,由ascii码表,-1是不在表范围之内,因为默认char占2个字节,即8个bit,所能存的最大值是65536个,所以char的数字范围是0-65535,把-1转为char,会倒着找,就是最大值65535, 第三步:char类型的65535转换为int还是65535

ASCII码对照表

基本数据类型

类型

字节数

大小

byte

1字节

最小值是 -128(-2^7);最大值是 127(2^7-1);

boolean

至少1字节

这种类型只作为一种标志来记录 true/false 情况;

short

2字节

最小值是 -32768(-2^15);最大值是 32767(2^15 - 1);

char

2字节

最小值是 \u0000(即为0);最大值是 \uffff(即为65,535);

int

4字节

最小值是 -2,147,483,648(-2^31);最大值是 2,147,483,647(2^31 - 1);

float

4字节

单精度浮点数字长32位,尾数长度23,指数长度8,指数偏移量127;

long

8字节

最小值是 -9,223,372,036,854,775,808(-2^63);最大值是9,223,372,036,854,775,807(2^63 -1);

double

4字节

双精度浮点数字长64位,尾数长度52,指数长度11,指数偏移量1023;

原文发布于微信公众号 - 国产程序员(Monday_lida)

原文发表时间:2019-04-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券