• Java数据类型


    1.变量的概念

    变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

    内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。
    在这里插入图片描述
    因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。

    Java 的两大数据类型:

    • 内置数据类型
    • 引用数据类型

    2.变量中加号的使用

    在这里插入图片描述
    代码实例:
    在这里插入图片描述


    3.基本数据类型

    基本数据类型是每个语言的灵魂🙌

    在这里插入图片描述

    整数类型

    byte

    • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
    • 最小值是 -128(-2^7);最大值是 127(2^7-1)
    • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;默认值是 0;

    short

    • short 数据类型是 16 位、有符号的以二进制补码表示的整数
    • 最小值是 -32768(-2^15);最大值是 32767(2^15 - 1)
    • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一; 默认值是 0;

    int

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

    long

    • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
    • 最小值是 -9,223,372,036,854,775,808(-2^63);最大值是 9,223,372,036,854,775,807(2^63 -1)
    • 这种类型主要使用在需要比较大整数的系统上;默认值是 0L;
    • long 类型的使用需要在数值后面加上L作为标识

    浮点类型

    float

    • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
    • float 在储存大型浮点数组的时候可节省内存空间;默认值是 0.0f;
    • float数值使用需要在数值后面fF标识

    double

    浮点数 = 符号位 + 指数位 + 尾数位😁另外,小数都是近似值~

    • double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
    • 浮点数的默认类型为 double 类型;默认值是 0.0d;

    科学计数法

    java里的小数可以使用科学计数法表示,以下是一个实例:

    double g = 5.21E-2; // 科学计数法
    // 它表示的值是0.0521
    
    • 1
    • 2

    通常情况下,应该使用double类型,因为它更加精确🎈

    浮点数陷阱

    运算结果为浮点数时,不要轻易使用比较运算符,要小心精度丢失问题。一个合理的解决方法是以两个数的差值的绝对值,在某个精度范围内判断

    错误的示范:

    // 浮点数陷阱
    double h = 8.1/3;
    System.out.println(h);
    if (h == 2.7){
        System.out.println("结果正确!");
    } else {
        System.out.println("结果错误!");
    }
    --------------------------------
    输出:
    2.6999999999999997
    结果错误!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    正确的示范:

    // 正确的示范
    if (Math.abs(h - 2.7) < 0.000001){
        System.out.println("结果正确!");
    } else {
        System.out.println("结果错误!");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    字符类型

    char

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

    常见字符编码表

    • ASCII:使用一个字节表示,一共128个字符,实际上一个字节可以表示256个字符(ASCII码只用了128个)ASCII编码表
    • Unicode:使用两个字节表示字符,字母和汉字统一占用两个字节,兼容ASCII码
    • Utf-8:大小可变的编码,字母使用一个字节表示,汉字使用三个字节表示,对于Unicode编码的改进版
    • GBK:可以表示汉字,而且范围广,字母一个字节,汉字两个字节

    布尔类型Boolean

    • boolean数据类型表示一位的信息;
    • 只有两个取值:truefalse;默认值是 false

    4.自动类型转换

    精度小的数据类型会自动转化为精度大的数据类型🚀
    在这里插入图片描述

    例如:

    // 自动类型转换,低 -- 高
    int num = 'a';
    double l = 80;
    
    • 1
    • 2
    • 3

    Byte,short,char之间不会相互进行自动转换❌但是这三者可以进行计算,在计算时首先会转换成int,不管他们是不是混合运算

    有多种数据类型混合运算时,系统会首先将所有数据转换成容量最大的数据类型,然后进行计算🚀

    boolean类型不参与转换


    5.强制数据类型转换

    在高精度转换为低精度数据类型时,程序员可以有意的进行强制数据类型转换,注意这很危险,除非是有意为之🙌

    例如:

    // 强制数据类型转换
    int m = (int)5.21;
    System.out.println(m);
    -----------------
    输出:
    5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意:强制转换只对最近的操作数有效,往往会使用小括号提升优先级别🤡


    6.基本数据类型与字符串

    基本数据类型 – 字符串

    int n = 521;
    String s1 = n + ""; // 加双引号即可转换
    System.out.println(s1);
    
    • 1
    • 2
    • 3

    字符串 – 基本数据类型(使用包装类)

    String s2 = "521";
    int o = Integer.parseInt(s2); // 其他类型转换类推即可
    System.out.println(o);
    
    • 1
    • 2
    • 3

    如果我们想得到字符串中的某个字符,进行如下操作即可

    String s2 = "521";
    // 得到s2字符串的第一个字符
    System.out.println(s2.charAt(0));
    -----------------------
    输出:
    5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Debian11安装Proxmox VE 7
    360 度反馈的实施计划与案例
    2022装备制造业服务数字化报告
    Unity3D学习笔记12——渲染纹理
    怎样使用pdf转换器?一篇文章教会你
    基于Springboot实现汽车4S店销售管理系统
    css滤镜
    JavaScript知识系列(6)每天10个小知识点
    C++面试 -分布式架构-架构能力:分布式事务的学习
    指南:关于帮助中心需要注意的一些细节
  • 原文地址:https://blog.csdn.net/Gherbirthday0916/article/details/125550139