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. 基本数据类型转换-练习题

在这里插入图片描述

目录
相关文章
|
1月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
21 1
|
1月前
|
存储 Java
JAVA字符串与其他类型数据的转换
JAVA字符串与其他类型数据的转换
27 4
|
13天前
|
存储 Java
Java中的基本数据类型有哪些?它们的大小和取值范围是多少?
Java基础数据类型:4种整型(byte[-128,127],short[-32,768,32,767]),2种浮点(float,double),1种字符(char,Unicode),1种布尔(true,false)。
17 0
|
1月前
|
Java
JAVA基本数据类型输入输出流
JAVA基本数据类型输入输出流
16 0
|
1月前
|
存储 算法 Java
Java基本数据类型
Java基本数据类型
22 1
|
1月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
1月前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
92 3
|
1月前
|
缓存 NoSQL Java
java中复杂业务情况下的集合操作(增减集合同步数据)
java中复杂业务情况下的集合操作(增减集合同步数据)
27 0
|
1月前
|
存储 Java
Java基本数据类型
Java基本数据类型
7 0
|
1月前
|
存储 缓存 Java
JAVA基本数据类型的包装类
JAVA基本数据类型的包装类
15 0