Java基本数据类型转换

一、自动类型转换

1.基本介绍

  1. 当Java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换
  2. 数据类型按精度(容量)大小进行排序为:
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/520b6288a88540b0ace9d2c22b844ca4.png在这里插入图片描述
public class AutoConvert {public static void main(String[] args) {int num = 'a';   // char -> intdouble dom = 80;  // int -> doubleSystem.out.println(num);  //97System.out.println(dom);  // 80.0}
}

在这里插入图片描述

2.转换细节

(1)有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。

(2)当我们把精度(容量)大的数据类型赋值给精度(容量)小的 数据类型时,就会报错,反之就会进行自动类型转换。

(3)(byte,short) 和 char 之间不会互相自动转换

(4)byte,short,char 他们三者,(不管是单独还是混合)在计算时首先转换为 int类型。

(5)boolean 不参与类型自动转换

(6)自动提升原则:表达式结果的类型自动提升为 操作数中最大的类型

public class AutoConvertDetail {public static void main(String[] args) {//细节1:有多种类型的数据混合运算时//系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算int n1 = 10;//float n2 = n1 + 1.1;// 错误的,1.1会默认为 double类型的,结果类型是double//double n2 = n1 + 1.1;// 正确的;float n2 = n1 + 1.1F; // 正确的,结果类型也是float// 细节2:当我们把精度(容量)大的数据类型赋值给精度(容量)小的 数据类型时,就会报错,反之就会进行自动类型转换。// 细节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 -> intint s2 = b2 + s1; // 正确的//byte b4 = b2 + b3; //错误的,b2 + b3 => int//细节5:boolean 不参与类型自动转换boolean pass = true;//int num = pass; // 错误的//细节6:自动提升原则:表达式结果的类型自动提升为 操作数中最大的类型byte b4 = 1;short s3 = 100;int num200 = 1;double num300 = 1.1;double num400 = b4 + s3 + num200 + num300;}
}

二、强制类型转换

1.基本介绍

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

public class ForceConvert {public static void main(String[] args) {//演示强制类型转换int n1 = (int)1.9;System.out.println("n1 = " + n1);  //1 造成 精度损失int n2 = 2000;byte b1 = (byte)n2;System.out.println("b1 = " + b1);  // 造成 数据溢出}
}

2.转换细节

(1)当进行数据的大小 从大——> 小,就需要使用 强制转换

(2)强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级

(3)char 类型可以保存int的常量值,但不能保存int的变量值,需要强转

(4)byte 和 short 类型在进行运算时,当做int 类型处理

public class ForceConvertDetail {public static void main(String[] args) {//强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级//int x = (int)10*3.5 + 6*1.5; //编译错误:double -> intint x = (int)(10*3.5 + 6*1.5); //正确,44.0 -> 44System.out.println(x);char c1 = 100;//OKint m = 100; //OK//char c2 = m; //编译错误char c3 = (char)m; // OKSystem.out.println(c3);// 100对应的字符 d}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/443542.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【第2章 开始学习C++】C++语句

文章目录 导语声明语句和变量赋值语句cout的新花样使用cin类简介 导语 C 程序是一组函数, 而每个函数又是一组语句。 C 有好几种语句,例如:声明语句创建变量, 赋值语句给该变量提供一个值。 声明语句和变量 计算机是一种精确的…

Java 的数据结构整理(整合版)

Java 的数据结构整理(整合版) 一、数据输入输出 https://www.runoob.com/java/java-scanner-class.html 这部分是为了预防 leetcode 刷习惯了,忘记怎么处理输入输出的问题 数据输入 Java的数据输入和 C 相比非常繁琐,因此大多…

zookeeper API使用——znode的CRUD

这应该是目录 一、创建连接1.1构造函数1.2创建连接(封装) 二、节点操作2.1创建节点create语法代码 2.2获取节点数据getData语法代码 2.3获取子节点getChildren语法代码 2.4修改节点的值setData语法代码 2.5删除delete语法代码 以下的代码只能作为基础的语法使用,为了…

LangChain: 大语言模型的新篇章

本文介绍了LangChain框架,它能够将大型语言模型与其他计算或知识来源相结合,从而实现功能更加强大的应用。接着,对LangChain的关键概念进行了详细说明,并基于该框架进行了一些案例尝试,旨在帮助读者更轻松地理解LangCh…

65 切面AOP

65 切面AOP 切面基础概念 AOP:Aspect Oriented Programming,面向切面编程。是通过预编译方式(aspectj)或者运行期动态代理(Spring)实现程序功能的统一维护的技术。 面试问题: Spring的两大核心…

【VUE】双端比较算法

假设我们有两个虚拟节点 oldVnode 和 newVnode,它们分别对应的DOM结构为: 我们需要将 oldVnode 更新为 newVnode,这时就可以使用双端比较算法了。算法本质上是将新旧节点进行一次交叉比较,尽可能地重复使用已有的节点来达到最小…

懒人笔记-QT程序UOS打包篇

懒人笔记-uos打包篇 前言1、deploy2、组织打包目录2.1 控制文件2.1.1 control的内容:2.1.2 postinst的内容:2.1.3 postrm的内容: 2.2 执行程序2.3 开机自启(可选项) 3、输出deb安装包4、服务卸载4.1 服务卸载4.2 程序按…

Web自动化Demo-PHP+Selenium

1.新建工程 打开PhpStorm新建工程如下&#xff1a; 打开终端输入如下命令安装selenium&#xff1a; composer require php-webdriver/webdriver 2.编写代码 <?php require vendor/autoload.php;use Facebook\WebDriver\Remote\RemoteWebDriver; use Facebook\WebDriver…

BMS-绝缘检测

一、为什么要进行绝缘检测 前言&#xff1a;BMS绝缘检测是指对电池组与车体之间的绝缘状态进行实时监测和检测。为了确保电池组与车体之间的绝缘性能良好&#xff0c;防止漏电和短路等安全隐患&#xff0c;BMS绝缘检测系统能够及时发现绝缘故障&#xff0c;并采取相应的措施进…

计算机毕业设计Python深度学习游戏推荐系统 Django PySpark游戏可视化 游戏数据分析 游戏爬虫 Scrapy 机器学习 人工智能 大数据毕设

主要功能如下&#xff1a; &#xff08;1&#xff09;用户管理模块&#xff1a;用户能够注册、登录及修改个人信息&#xff0c;查看热门游戏及攻略信息。 &#xff08;2&#xff09;数据采集与处理模块&#xff1a;主要通过Python编程&#xff0c;爬取Tap Tap社区中游戏热门榜…

python发送邮件带附件:配置全指南与步骤?

python发送邮件带附件教程&#xff1f;python如何发邮件带附件&#xff1f; 无论是工作报告、项目文档还是个人通知&#xff0c;邮件都能快速传递信息。而当这些信息需要附带文件时&#xff0c;Python发送邮件带附件的功能就显得尤为重要。AokSend将详细介绍如何使用Python发送…

简易入门:使用Docke 部署一个tomcat服务

简易入门&#xff1a;使用Docke 部署一个tomcat服务 # 拉取 >docker pull tomcat:9.0# 后台运行容器&#xff0c;端口映射为8080. -p 宿主机端口:容器端口 >docker run -d --name tomcat-c-01 -p 8080:8080 tomcat:9.0# 查看容器id >docker ps CONTAINER ID IMAG…

大数据毕业设计选题推荐-王者荣耀战队数据分析-Python数据可视化-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

图解 微信开发者工具 小程序源码 调试、断点标记方法 , 微信小程序调试器,真机调试断点调试方法,小程序网络API请求调试方法 总结

在我们使用微信开发者工具进行微信小程序开发的时候&#xff0c;在这个微信开发者工具的代码编辑框里面我们是无法像使用vscode, idea等IDE工具时那样直接对代码打断点进行调试&#xff0c; 原因是小程序实际上他就是一个web浏览器应用的包装, 在其内部使用的还是类似chrome的…

Mysql数据库安装与C++配置

本文档旨在为需要安装和配置MySQL 8.3、MySQL Workbench以及C Connector的用户提供详细的步骤指导。在安装过程中&#xff0c;可能会遇到一些常见问题&#xff0c;如DLL文件缺失等&#xff0c;本指南也会提供相应的解决办法。 1.安装Mysql8.3 安装Mysql有很多教程&#xff0c…

10.MySql全局参数优化

从上图可以看出SQL及索引的优化效果是最好的&#xff0c;而且成本最低&#xff0c;所以工作中我们要在这块花更多时间。 一、全局参数 配置文件my.ini(windows)或my.cnf(mac)的全局参数&#xff1a; 假设服务器配置为&#xff1a; CPU&#xff1a;32核 内存&#xff1a;64G…

《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署mongodb 7.0.14容器版分片集群》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;《Linux运维篇&#xff1a;Linux系统运维指南》 一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面向不通的客户安装我们的业务系统&…

charAt,chartCodeAt,codePointAt,fromCodePoint,fromCharCode

生僻字的length算2,有些空格是特殊空格,比如\u3000 u3000不是全角空格&#xff0c;u3000是表意字空格&#xff08;Ideographic Space&#xff09;&#xff0c;宽度和一个表意字&#xff08;汉字&#xff09;相同。它应当被当做汉字来处理。比如&#xff0c;在一些排版中&#x…

Python安装|PyCharm Professional 下载安装教程。2024最新版,亲测使用!

一、下载地址&#xff1a; 二、Python的下载及安装&#xff1a; 1、从上面网址进入Python官网 2、安装流程图&#xff1a; 双击已经下载好的python-*.*.*-amd64.exe文件&#xff0c;开始安装 最后就等它自己安装完成就好了 3、检验是否安装完成&#xff1a; windowsR快捷键…

Spring系列 循环依赖

文章目录 注入方式循环依赖的场景单例创建流程getSingletoncreateBeandoCreateBeancreateBeanInstance 循环依赖分析为什么都使用构造函数无法解决&#xff1f;为什么使用Autowired可以解决&#xff1f;为什么要添加到 earlySingletonObjects 缓存中&#xff1f;allowCircularR…