Java之基本数据类型转换——《我的Java打怪日记》

简介: Java之基本数据类型转换

基本数据类型转换

1. 自动类型转换

在这里插入图片描述

    //演示自动转换
    int num = 'a';//ok char -> int
    double d1 = 80; //ok int -> double
    System.out.println(num);//97
    System.out.println(d1);//80.0

在这里插入图片描述

2. 自动类型转换注意和细节

在这里插入图片描述

    //细节1: 有多种类型的数据混合运算时,
    //系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
    int n1 = 10; //ok
    //float d1 = n1 + 1.1;//错误 n1 + 1.1 => 结果类型是 double
    //double d1 = n1 + 1.1;//对 n1 + 1.1 => 结果类型是 double
    float d1 = n1 + 1.1F;//对 n1 + 1.1 => 结果类型是 float
    
    //细节2: 当我们把精度(容量)大 的数据类型赋值给精度(容量)小 的数据类型时,
    //就会报错,反之就会进行自动类型转换。
    //
    //int n2 = 1.1;//错误 double -> int 
    
    //细节3: (byte, short) 和 char之间不会相互自动转换
    //当把具体数赋给 byte 时,(1)先判断该数是否在byte范围内,如果是就可以
    byte b1 = 10; //对  , -128-127
    // int n2 = 1; //n2 是int 
    // byte b2 = n2; //错误,原因: 如果是变量赋值,判断类型
    // 
    // char c1 = b1; //错误, 原因 byte 不能自动转成 char
    // 
    // 
    
    //细节4: byte,short,char  他们三者可以计算,在计算时首先转换为int类型
    
    byte b2 = 1;
    byte b3 = 2;
    short s1 = 1;
    //short s2 = b2 + s1;//错, b2 + s1 => int
    int s2 = b2 + s1;//对, b2 + s1 => int
    
    //byte b4 = b2 + b3; //错误: b2 + b3 => int
    //
    
    //boolean 不参与转换
    boolean pass = true;
    //int num100 = pass;// boolean 不参与类型的自动转换
    
    //自动提升原则: 表达式结果的类型自动提升为 操作数中最大的类型
    //看一道题
    
    byte b4 = 1;
    short s3 = 100;
    int num200 = 1;
    float num300 = 1.1F;
    
    double num500 = b4 + s3 + num200 + num300; //float -> double

3. 强制类型转换

  • 介绍

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出,格外要注意。

  • 案例演示 ForceConvert.java

在这里插入图片描述

    //演示强制类型转换
    int n1 = (int)1.9;
    System.out.println("n1=" + n1);//1, 造成 精度损失
    
    int n2 = 2000;
    byte b1 = (byte)n2;
    System.out.println("b1=" + b1);//-48, 造成 数据溢出

4. 强制类型转换细节说明

在这里插入图片描述

  • 说明:靠近小括号的 10 先会转换成 int 类型,再乘以 3.5 就会变成 double 类型再加上后面的数,结果是 double 类型,不能把放在 int 类型里
    //演示强制类型转换
    //强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
    //int x = (int)10*3.5+6*1.5;//编译错误: double -> int 
    int x = (int)(10*3.5+6*1.5);// (int)44.0 -> 44
    System.out.println(x);//44
    
    
    char c1 = 100; //ok
    int m = 100; //ok
    //char c2 = m; //错误
    char c3 = (char)m; //ok
    System.out.println(c3);//100对应的字符, d字符

在这里插入图片描述

5. 基本数据类型转换-练习题

在这里插入图片描述

目录
相关文章
|
12天前
|
存储 缓存 安全
Java中的数据类型
Java语言提供了八种基本类型,分为4类8种:六个数值型(四个整数型byte、short、int、long,两个浮点型float、double)、一个字符型char和一个布尔型boolean。每种基本类型有固定的位数、取值范围及默认值。此外,还存在`void`类型,但无法直接操作。基本类型支持隐式和显式类型转换,并有对应的包装类如`Integer`、`Double`等,用于在需要对象的场景中使用。包装类支持自动装箱与拆箱机制,简化了基本类型与引用类型的转换,但需要注意性能和空指针异常等问题。
Java中的数据类型
|
27天前
|
前端开发 JavaScript Java
java常用数据判空、比较和类型转换
本文介绍了Java开发中常见的数据处理技巧,包括数据判空、数据比较和类型转换。详细讲解了字符串、Integer、对象、List、Map、Set及数组的判空方法,推荐使用工具类如StringUtils、Objects等。同时,讨论了基本数据类型与引用数据类型的比较方法,以及自动类型转换和强制类型转换的规则。最后,提供了数值类型与字符串互相转换的具体示例。
|
2天前
|
存储 Java BI
java怎么统计每个项目下的每个类别的数据
通过本文,我们详细介绍了如何在Java中统计每个项目下的每个类别的数据,包括数据模型设计、数据存储和统计方法。通过定义 `Category`和 `Project`类,并使用 `ProjectManager`类进行管理,可以轻松实现项目和类别的数据统计。希望本文能够帮助您理解和实现类似的统计需求。
36 17
|
2月前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
26 3
|
2月前
|
Java
Java基础之数据类型
Java基础之数据类型
22 6
|
2月前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
63 7
|
2月前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
2月前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
121 2
|
2月前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
37 2
|
2月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
76 4