java基本上数据类型所占大小

基础知识:一个字节=8bit(8位)

一个字节的内存模型为:


1、整数型:

    byte:1个字节,存储范围:-128~127     即:-(2^(1 * 8 - 1)+1) ~ 2^(1 * 8 - 1)

    short:2个字节,存储范围:-32768~32767    即:-2^(2 * 8 - 1) ~ (2^(2 * 8 - 1)-1)

    int:4个字节,存储范围:-2147483648~2147483647    即:-2^(4 * 8 - 1) ~ (2^(4 * 8 - 1)-1)

    long:8个字节,存储范围:...........    即:-(2^(8 * 8 - 1)+1) ~ 2^(8 * 8 - 1)

2、浮点数类型:

    float:4个字节

    double:8个字节

   浮点数特别说明:


3、单字符:

    char:2个字节

    char b = "a" + 1;// 和char b = "b"一样的;

    上述运算中,首先是将"a"转换成相应的ASCII码值:95,然后再和1相加

    因此,在java中,对char进行运算的时候,是直接当作ASCII码对应的整数来运算的。

   扩展:中文字符对应的码表叫:Unicode,也和ASCII码类似。char c = "字";


另外

1)数据类型是可以自动从高精度向低精度转换,反之则不行

即:byte<--short<--int<--long<--flot<--double

eg:int a = 1.2;// 编译器会报错(精度丢失错误)

    double b = 2;//编译器通过

2)在java中,默认小数是double类型,

    float c = 1.2;//编译器会报错(精度丢失错误)

   float c = 1.2f;//这样编译器就不报错了

3)想将高精度转换成低精度,也是有办法的:强制转换

eg: int a = (int)1.2;


4)对于如下式子:int a = 1 + 1.2f + 3.4

在右边运算过程中,会自动将低精度的转换成高精度的类型进行运算,最后再将小数位丢失掉,得到结果为5


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值