• Java数据类型详细介绍


    Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。本文将通过示例详细说说Java中数据类型的转换,感兴趣的可以了解一下

    1. Java数据类型

    前面说到,程序运行时产生的临时数据我们存储在被称为变量的内存单元里,而变量的创建,就是在内存中分配一块内存空间。

    为什么要定义不同的数据类型呢?当我们预先定义好数据类型后,内存管理系统在给变量分配内存空间时,就可以根据变量的数据类型为变量分配合适的存储空间,分配的空间只能用来储存该类型数据。总的来说,给变量定义数据类型可以让内存空间得到充分的利用。

    Java中数据类型一共分为两大类,一类是基本数据类型,另一类叫做引用数据类型。其中基本数据类型一共 8 种。

    2. 基本数据类型

    在基本数据类型中,每一个类型都定义了占用存储空间的字节数,我们可以根据现实中的意义,数据所占用内存的大小等选择合适的数据类型,达到充分利用内存空间的目的。

    Java中定义了 8 个基本数据类型,分别是:

    • byte 字节型
    • short 短整型
    • int 整型
    • long 长整形
    • float 单精度浮点型
    • double 双精度浮点型
    • boolean 布尔型
    • char 字符型

    其中前四种是数值型变量,现在对这 8 中数据类型做一个详解:

    byte:

    • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
    • 最小值是 -128(-2^7);
    • 最大值是 127(2^7-1);
    • 默认值是 0;

    short:

    • short 数据类型是 16 位、有符号的以二进制补码表示的整数
    • 最小值是 -32768(-2^15);
    • 最大值是 32767(2^15 - 1);
    • 默认值是 0;

    int:

    • int 数据类型是32位、有符号的以二进制补码表示的整数;
    • 最小值是 -2,147,483,648(-2^31);
    • 最大值是 2,147,483,647(2^31 - 1);
    • 默认值是 0 ;

    long:

    • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
    • 最小值是 -9,223,372,036,854,775,808(-2^63);
    • 最大值是 9,223,372,036,854,775,807(2^63 -1);
    • 默认值是 0L;

    float:

    • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
    • float 在储存大型浮点数组的时候可节省内存空间;
    • 默认值是 0.0f;
    • 浮点数不能用来表示精确的值,如货币;

    double:

    • double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
    • 浮点数的默认类型为 double 类型;
    • double类型同样不能表示精确的值,如货币;
    • 默认值是 0.0d;

    boolean:

    • boolean数据类型表示一位的信息;
    • 只有两个取值:true 和 false;
    • 这种类型只作为一种标志来记录 true/false 情况;
    • 默认值是 false;

    char:

    • char 类型是一个单一的 16 位 Unicode 字符;
    • 最小值是 \u0000(十进制等效值为 0);
    • 最大值是 \uffff(即为 65535);
    • char 数据类型可以储存任何字符;

    在学习基本数据类型时,不需要刻意的记背,在后面的练习中,由于数据类型的概念会一直用到,所以会慢慢熟练的掌握,现在要学习的就是了解每个数据类型,以及表示的数据范围,思考不同数据类型的应用场景。

    数据类型的最大最小值以常量的形式定义在对应的包装类中,例如整形 int 的包装类:java.lang.Integer

    1

    2

    3

    4

    5

    6

    7

    public class Test {

        public static void main(String[] args) {

            System.out.println("整型 占用的二进制位:"+ Integer.SIZE);

            System.out.println("最大值:"+Integer.MAX_VALUE);

            System.out.println("最小值:"+Integer.MIN_VALUE);

        }

    }

    运行结果:

    整型 占用的二进制位:32
    最大值:2147483647
    最小值:-2147483648

    每个基本数据类型都预先定义了一个默认值,上面的介绍中已经给出。

    3. 引用数据类型

    引用数据类型的变量非常类似与C/C++中的指针,引用类型指向一个对象,这时指向对象的这个变量就是引用变量。引用类型的变量的默认值都是 NULL。

    Java是一门面向对象的编程语言,后面我们要用到的类,接口,数组都是引用数据类型。

    1

    Student stu = new Student();

    如上,在创建一个 Student 对象的时候,就是定义了一个名为 stu 的对象变量指向这个 Student 的对象。

    4. 类型转换

    4.1 自动类型转换

    整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

    转换时,必须满足转换前的数据类型的位数要低于转换后的数据类型(byte —> short —> char—> int —> long—> float —> double ),例如: short 数据类型的位数为16位,就可以自动转换位数为32的 int 类型。如下:

    1

    2

    3

    4

    5

    6

    7

    public class Test{

        public static void main(String[] args){

            char c1='a';//定义一个char类型

            int i1 = c1;//char自动类型转换为int

            System.out.println("char自动类型转换为int后的值等于"+i1);

        }

    }

    运行结果:

    char 自动类型转换为 int 后的值等于97

    4.2 强制类型转换

    当我们要进行从高级转换到低级时,就要进行强制类型转换。转换的条件是转换的数据类型必须是兼容的。如下:

    1

    2

    3

    4

    5

    6

    7

    public class Test{

        public static void main(String[] args){

            int i = 123;

            byte b = (byte)i;//强制类型转换为byte

            System.out.println("int强制类型转换为byte后的值等于"+b);

        }

    }

    运行结果:

    int强制类型转换为byte后的值等于123

    数据类型转换应该注意这些问题:

    • 不能对 boolean 类型进行类型转换。
    • 不能把对象类型转换成不相关类的对象。
    • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
    • 转换过程中可能导致溢出或损失精度。

    到此这篇关于Java数据类型超详细示例讲解的文章就介绍到这了,希望对你有所帮助。

     

    来源:https://www.weidianyuedu.com

  • 相关阅读:
    非零基础自学Java (老师:韩顺平) 第5章 程序控制结构 5.8 while循环控制 && 5.9 do..while循环控制
    使用Bigemap计算挖填土石方量
    前端第一阶段测试
    零基础学Java(1)初识Java程序
    20 个 Laravel的orm技巧和窍门(转)
    4.10每日一题(二元函数极值相关重要性质,反复学习)
    保姆级透明背景动画导出 —— json格式(Mac系统)
    JS-WebAPI练习
    vue-admin-better前端页面-菜单-权限配置
    刷题leetcode-两数之和
  • 原文地址:https://blog.csdn.net/hdxx2022/article/details/128147873