首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第一章:注释
第二章:关键字
第三章:标识符
第四章:初识数据类型
第五章:常量
第六章:变量
第七章:两种常见的输出语句
第八章:计算机是如何存储数据的?
第九章:基本数据类型转换
当前位置:
首页>>
技术小册>>
Java语言基础1-基础知识
小册名称:Java语言基础1-基础知识
#### 9.1 概述 在 Java 程序中,不同的基本数据类型的值经常需要进行互相转换,Java 语言所提供的七种数值类型之间可以相互转换,基本数据类型转换有两种方式:自动类型转换 和 强制类型转换 。 #### 9.2 自动类型转换(隐式类型转换) 自动类型转换的概念:将 取值范围小的类型 自动提升为 取值范围大的类型 。 基本数据类型的转换规则如下所示: 自动类型转换的场景: ① 当将存储范围小的值(常量值、变量值、表示式计算的结果值)赋值给存储范围大的变量时: ```bash int i = 'A'; //char自动升级为int double d = 10; // int自动升级为double byte b = 127; // 右边的整数常量值必须在 -128 ~ 127 范围内 long num = 12345678; // 右边的整数常量如果在int范围内,编译和运行都可以通过,这里涉及到数据类型转换 ``` ② 当存储范围小的数据类型和存储范围大的数据类型一起混合运算时,会先转换为存储范围大的数据类型,然后再计算: ```bash int i = 10; byte b = 10; double d = 10; double sum = i + b + d; System.out.println(sum); // 混合运算,升级为double ``` ③ 当 byte 、short 、char 数据类型进行算术运算的时候,会按照 int 类型处理: byte b1 = 1; byte b2 = 2; // byte b3 = b1 + b2; // 编译报错,b1 + b2 自动升级为int ④ boolean 类型不参与。 #### 9.3 强制类型转换(显示类型转换) 强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。 语法: ```bash 数据类型 变量名 = (数据类型)被强制转换值; ``` 注意:强制类型转换可能会损失精度或溢出。 强制类型转换的场景: ① 当将存储范围大的值(常量值、变量值、表示式计算的结果值)赋值给存储范围小的变量时: ```bash int i = (int) 3.14; // 强制类型转换,损失精度 double d = 1.2; int num = (int) d; // 损失精度 int i = 200; byte b = (byte) i; System.out.println("b = " + b); // 溢出 -56 ``` ② boolean 类型不参与。 ③ 当某个值想要提升数据类型的时候,也可以使用强制数据类型: ```bash int i = 1; int j = 2; double d = (double) i / j; System.out.println(d); ``` 注意:③ 场景下的强制类型转换是没有风险的。 #### 9.4 特殊的数据类型转换 ① 任意数据类型的数据和 String 类型进行 + 运算的时候,结果一定是 String 类型。 ```bash System.out.println("" + 1 + 2); //12 ``` ② String 类型不能强制类型转换,转为其他类型: ```bash String str = "123"; int num = (int)str;// 错误 ``` ```bash String str = "123"; int num = Integer.parseInt(str);// 正确 ```
上一篇:
第八章:计算机是如何存储数据的?
该分类下的相关小册推荐:
深入拆解 Java 虚拟机
Java语言基础2-运算符
java源码学习笔记
Java语言基础15-单元测试和日志技术
Java语言基础4-数组详解
Mybatis合辑4-Mybatis缓存机制
Java语言基础6-面向对象高级
JAVA 函数式编程入门与实践
Java语言基础7-Java中的异常
Java语言基础10-Java中的集合
Java语言基础5-面向对象初级
SpringBoot合辑-初级篇