Java 基本数据类型之间的运算规则

简介: Java 基本数据类型之间的运算规则

前言:

这里只讨论七种基本数据类型变量间的运算,不包含boolean类型的。

1.自动类型提升:

结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的。

说明:此时的容量大小指的是,表示数的范围大和小。比如long占用八个字节,float占用四个字节,但是float的容量要大于long的容量。

byte、short、char—>int–>long–>float–>double

注意:当byte、short、char三种类型的变量做运算时,结果为int型

@Test
    public void test() {
        int a1 = 3;
        float a2 = 5.4f;
        float a3 = a1 + a2;
        System.out.println(a3); //8.4
        byte b1 = 20;
        short b2 = 12;
        int b3 = b1 + b2;
        System.out.println(b3); //32
        short c1 = 45;
        double c2 = c1;
        System.out.println(c2); //45.0
        byte e1 = 45;
        short e2 = 14;
        char e3 = 'a';
        //编译不通过
//        byte e4 = e1+e2;
        //编译不通过
//        short e5 = e1+e3;
        //编译不通过
//        char e6 = e1+e2;
        char d1 = 'a'; //97
        byte d2 = 1;
        int d3 = d1 + d2;
        System.out.println(d3); //98
    }

2.强制类型转换:

自动类型提升运算的逆运算

  1. 需要使用强转符()
  2. 注意点:强制类型转换,可能导致精度损失

代码说明:

@Test
    public void test1(){
        double a1 = 12.3;
        //精度损失举例1
        int a2 = (int)a1;
        System.out.println(a2);//12
        //没有精度损失
        long c1 = 100;
        int c2 = (int)c1;
        System.out.println(c2); //100
        //精度损失举例2
        int b1 = 128;
        byte b2 = (byte) b1;
        System.out.println(b2);//-128
    }

特殊情况,看代码即可:

@Test
    public void test2(){
        long a1= 456; //不报错
        //编译失败:过大的整数
//        long a2= 4567832423235252;
        //编译失败
//        float b1= 12.6;
        byte c1 = 12;
        //整型常量,默认类型为int型
//        byte c2=c1+1; //编译失败
        //浮点型常量:默认类型为double型
//        float d1 = c1+12.3; //编译失败
    }


目录
相关文章
|
22天前
|
存储 Java
Java基础(二):原码、反码、补码及进制之间的运算
Java基础(二):原码、反码、补码及进制之间的运算
Java基础(二):原码、反码、补码及进制之间的运算
|
22天前
|
存储 Java 测试技术
Java基础(三):八种基本数据类型
Java基础(三):八种基本数据类型
Java基础(三):八种基本数据类型
|
2月前
|
存储 缓存 安全
Java中的数据类型
Java语言提供了八种基本类型,分为4类8种:六个数值型(四个整数型byte、short、int、long,两个浮点型float、double)、一个字符型char和一个布尔型boolean。每种基本类型有固定的位数、取值范围及默认值。此外,还存在`void`类型,但无法直接操作。基本类型支持隐式和显式类型转换,并有对应的包装类如`Integer`、`Double`等,用于在需要对象的场景中使用。包装类支持自动装箱与拆箱机制,简化了基本类型与引用类型的转换,但需要注意性能和空指针异常等问题。
Java中的数据类型
|
3月前
|
Java
Java基础之数据类型
Java基础之数据类型
29 6
|
3月前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
151 7
|
3月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
93 4
|
3月前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
60 1
|
4月前
|
存储 Java 编译器
[Java]基本数据类型与引用类型赋值的底层分析
本文详细分析了Java中不同类型引用的存储方式,包括int、Integer、int[]、Integer[]等,并探讨了byte与其他类型间的转换及String的相关特性。文章通过多个示例解释了引用和对象的存储位置,以及字符串常量池的使用。此外,还对比了String和StringBuilder的性能差异,帮助读者深入理解Java内存管理机制。
43 0
|
4月前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
80 4
|
6月前
|
Java
【Java 第三篇章】注释、数据类型、运算符
【8月更文挑战第2天】 Java支持三种注释:单行(`//`)、多行(`/*...*/`)及文档注释(`/**...*/`)。它定义了八种基本数据类型,包括四种整数类型(`byte`、`short`、`int`、`long`),两种浮点类型(`float`、`double`),一种字符类型(`char`)和一种布尔类型(`boolean`)。数据类型之间可以自动转换或通过强制转换改变,但后者可能导致精度损失。Java中的运算符涵盖算术(如`+`、`-`)、赋值(如`=`)、比较(如`==`)、逻辑(如`&&`)和三目运算符等。例如,算术运算可用于执行基本数学计算,而逻辑运算符用于组合条件判断。
32 1