Java的数据类型

来源:互联网 发布:骑士战歌坐骑升阶数据 编辑:程序博客网 时间:2024/06/05 00:12
本文主要内容为:    一、java数据类型的分类    二、基本数据类型的介绍    三、基本数据类型之间的强制类型转换一、java数据类型的分类    java分为两大类数据类型:1.基本数据类型。2.引用数据类型。而第一种基本数据类型包含四类八种数据类型,其关系如下图所示:

java的数据类型

二、基本数据类型的介绍
数据类型 默认值 默认长度 取值范围 byte 0 1byte -2^7~2^7-1 short 0 2byte -2^15~2^15-1 int 0 4byte -2^31~2^31-1 long 0L 8byte -2^63~2^63-1 float 0.0f 4byte -2^128~2^128 double 0.0d 8byte -2^1024~2^1024 boolean false 1bit
三、基本数据类型之间的强制类型转换    1.在java中,对于未声明数据类型的整型,默认为int类型;对于未声明数据类型的浮点型,默认为double型。    2.基本数据类型之间的转换满足:大转小(取值范围的大小),需进行强制类型转换,精度会丢失;小转大,直接转(不需要进行强制类型转换),精度不会丢失。
public class Test {    public static void main(String[] args) {        byte b= 1000;//编译错误(整型默认为int类型,int->byte属于大转小,如果不进行强制类型转换,会发生编译错误)        float f=2.2;//编译错误(错误原因同上,浮点型默认为double类型)        int i=56000;//编译成功        System.out.println(b);        System.out.println(f);    }}
    我们发现,如果由大的类型转向小的类型时,如果不进行强制类型转换,会出现编译失败的情况。
public class Test {    public static void main(String[] args) {        byte b=(byte) 1000;//编译成功        float f=(float) 2.2;//编译成功        int i=56000;//编译成功        System.out.println(b);        System.out.println(f);    }}
打印结果:
-242.2
    那么为什么int类型的1000在强制转换成byte类型的时候打印出来不是1000而是-24?因为byte的取值范围是-128~127,1000超过了byte的取值范围。在将1000转成二进制,然后取前八位(byte的取值范围),换算成十进制则为-24.
0 0
原创粉丝点击