文章目录

  • 一、 类型转换
    • 1. 隐式转换
    • 2. 强制转换
    • 3.类型转换案例

一、 类型转换

在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动类型转换和强制类型转换。

1. 隐式转换

把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可。例如:

double num = 10; // 将int类型的10直接赋值给double类型
System.out.println(num); // 输出10.0

类型从小到大关系图:

说明:

  1. 整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。
byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2;
// 第三行代码会报错,b1和b2会自动转换为int类型,计算结果为int,int赋值给byte需要强制类型转换。
// 修改为:
int num = b1 + b2;
// 或者:
byte b3 = (byte) (b1 + b2);
  1. boolean类型不能与其他基本数据类型相互转换。

2. 强制转换

​ 把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。

​ 强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量;

​ 例如:

double num1 = 5.5;
int num2 = (int) num1; // 将double类型的num1强制转换为int类型
System.out.println(num2); // 输出5(小数位直接舍弃)

3.类型转换案例

案例代码:

byte a = 3;
byte b = 4;
byte c = a + b; //错误。因为两个byte变量相加,会先提升为int类型
byte d = 3 + 4; //正确。常量优化机制

常量优化机制:

​ 在编译时,整数常量的计算会直接算出结果,并且会自动判断该结果是否在byte取值范围内,

​ 在:编译通过

 不在:编译失败

【愚公系列】2023年01月 Java教学课程 009-类型转换相关推荐

  1. 【愚公系列】2023年01月 Java教学课程 030-static关键字

    文章目录 一.static关键字 1.static关键字概述 (理解) 2.static修饰的特点 (记忆) 3.static关键字注意事项 (理解) 二.static关键字内存分析 总结 一.sta ...

  2. 【愚公系列】2023年01月 Java教学课程 016-break和continue

    文章目录 一.break和continue 总结 break: continue: 一.break和continue 跳转控制语句(break) 跳出循环,结束循环 跳转控制语句(continue) ...

  3. 【愚公系列】2023年01月 Java教学课程 001-Java语言背景介绍

    文章目录 前言 一.Java语言的版本 二.Java SE 三.Java ME 四.Java EE 总结 前言 Java 语言 语言 : 人与人交流沟通的表达方式. 计算机语言 : 人与计算机之间进行 ...

  4. 【愚公系列】2023年01月 Java教学课程 039-Java中API

    文章目录 前言 一.常用API 1.Math 2.System 3. Object类的toString方法 4.Object类的equals方法 5.Objects 6.BigDecimal 前言 什 ...

  5. 【愚公系列】2023年01月 Java教学课程 003-Hello World的运行

    文章目录 前言 一.Hello World的运行 1.命令行执行 2.IDE执行 二.HelloWorld程序分析 前言 hello world的意思是"你好,世界".学习过c语言 ...

  6. 【愚公系列】2023年01月 Java教学课程 043-时间日期类

    文章目录 一.时间日期类 1.Date类 2.Date类常用方法 3.SimpleDateFormat类 4.时间日期类练习 一.时间日期类 1.Date类 计算机中时间原点 1970年1月1日 00 ...

  7. 【愚公系列】2023年01月 Java教学课程 004-Java语言三种注释

    文章目录 前言 一.单行注释 二.多行注释 三.文档注释 总结 前言 注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码.注释是编写程序时,写程序的人给一个语句.程序段.函数等的解释或提 ...

  8. 【愚公系列】2023年01月 Java教学课程 005-关键字

    文章目录 前言 一.关键字介绍 二.java关键字的分类 1.用于数据类型 2.用于语句 3.用于修饰 4.用于方法.类.接口.包和异常 前言 关键字是电脑语言里事先定义的,有特别意义的标识符,有时又 ...

  9. 【愚公系列】2023年01月 Java教学课程 017-Random随机数的使用

    文章目录 一.Random 1.Random产生随机数(掌握) 2.Random练习-猜数字(应用) 一.Random 1.Random产生随机数(掌握) 概述: Random类似Scanner,也是 ...

最新文章

  1. 图数据库Neo4j全栈Web技术解密
  2. RxJava 教程第一部分:为何使用RxJava
  3. python精要(81)-collections容器类型(1)-统计相同的值
  4. wxWidgets:持久对象概述
  5. Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!(AB)
  6. 站内搜索引擎初探:haystack全文检索,whoosh搜索引擎,jieba中文分词
  7. Asp.Net Forums研究文章集合(收藏)
  8. ----------------------------------------spring 整合jdbc---------------------
  9. 学习linux—— 磁盘相关指令
  10. 8086汇编语言入门-HelloWorld
  11. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_4 mybatis中使用unpooled配置连接池的原理分析...
  12. 如何在 Project 里设置(创建)里程碑
  13. Mac: Failed to connect to raw.githubusercontent.com port 443: Connection refused error:
  14. 济南北大青鸟2013春季百人就业工程计划
  15. 当程序员变成软件项目经理
  16. 微信小程序快手小店登录
  17. 百旺开票清单导入模板_半年来最爱的高效率工具滴答清单不为人知的使用技巧...
  18. 【Linux系统IO函数】read、write函数及实现文件拷贝
  19. win7屏幕亮度怎么调_win7屏幕亮度调整方法
  20. java.lang.IllegalStateException: Web app root system property already set to different value: 'webap

热门文章

  1. 大地电磁二维正演程序--详细介绍
  2. 【Fluent】雷诺方程:推导与求解(附MATLAB代码)
  3. 前端笔记4 JS BOMDOM
  4. 剑指offer-各种语言版本
  5. 编程开发:Linux网络编程学习笔记
  6. 服务器,域名,备案,解析等
  7. [RK3128][Android 6.0] u-blox GPS芯片 MAX-7Q调试记录
  8. Playrix创始人的故事:新晋亿万富翁的发家史
  9. python 从多目标解中筛选非支配解集
  10. SVM用于上证指数的预测