当前位置: 首页 > news >正文

类型的转换

首先我们要了解java中的数据类型转换是指将一种数据类型转换成另一种数据类型的过程。
什么时候会用到?我觉得两种情况会用到

  • 等号左右两边类型不一致(一般发生在赋值时)
  • 不同类型的数据参与运算(一般发生在计算时)

转换也分两种:

  • 自动隐式类型转换(自动,一般都出现在小转大时)
  • 强制类型转换(手动,一般出现在大转小时)

现在,我们要记得一个各类型的取值范围的大小,详解在另一篇,感兴趣的读者可以自行前往查看:

小数 > 整数 >= 字符
double > float > long > int > short > byte,char
小转大

1.赋值时,等号两边类型不一致

/*
* 1. 等号两边类型不一致   long = int
* 2. int自动转换为long
* */
long l = 12;
double d = 12.5f;

2.计算时,参与计算的变量的类型不一致

/*
*  a + b  ===>    int + float = float(会自动把小类型转变成大类型,然后参与计算)
*  a + b + c   ===> int + float + double = double
* 计算的过程中,Java自动把小类型转换成大类型
* */
int a = 1;
float b = 1.2f;
double c = 1.22;
float e = a + b;
double f = a + b;
double g = a + b + c;

此外,当char参与计算时

/*
* c1 + c2 ===> char + int = int
* chart会转变成int,然后参与计算
*/
char c1 = 'A';
int c2 = 5;
int c3 = c1 + c2;
大转小

取值大范围的数据类型转换为取值小的数据类型:

  • 取值范围小的数据类型 变量名 = 取值范围大的数据类型 -> 需要强转

强转语法 :

  • 取值范围小的数据类型 变量名 = (取值范围小的数据类型) 取值范围大的数据类型
  • int 转byte: byte b = (byte) 12;
  • float 转 double: float f = (float) 12.2;
 /*
* float f = 12.2; 这句代码会报错,你把大的转变成小的,需要手动的设置。
* */
float f = (float)12.2;
System.out.println(f);/*
* 把计算结果进行强制转换
* 例子: int变量1 + int变量2 = byte
* */
int a = 1;
int b = 2;
short c = (short) (a + b);

注意事项:
我们需要注意三个场景:
把int转成byte有啥问题?

  • 数据溢出

把double转为float有啥问题?

  • 精度丢失

把float转为int有啥问题?

  • 精度丢失
// 1. 数据溢出
byte b = (byte)129;
// -127  超出之后,从头再开始数
System.out.println(b);// 2. 精度丢失
float f = (float) 3.333333335326565;
System.out.println(f); // 3.3333333 精度丢失int i = (int) 3.5235f;
System.out.println(i); // 3 精度丢失

开发中对于强制类型转换,慎用。
byte,short赋值问题:

// byte赋值问题.// 这里本身是一个大转小,需要程序员手动转换。但是如果没有超过范围,java会自动帮我们强转// 如果超过范围,必须手动强转。(short同理)byte b1 = 12;

byte,short参与运算:

// byte参与计算byte a = 1;byte b4 = 2;// byte参与计算,默认会转为int类型byte result = (byte) (a + b4);

char类型参与运算:

// 1. char会转为数字。
// 2. 找到char对应的ascii,如果ascii中没有,会去unicode编码(万国码)中寻找。然后再计算
// char参与计算System.out.println('雨' + 0); // 雨对应的unicode码System.out.println('A' + 0); // A对应的ASCII码

相关文章:

类型的转换

首先我们要了解java中的数据类型转换是指将一种数据类型转换成另一种数据类型的过程。 什么时候会用到?我觉得两种情况会用到 等号左右两边类型不一致(一般发生在赋值时)不同类型的数据参与运算(一般发生在计算时) 转…...

memset函数

让我们先看两个代码 memset(dp, 0x3f, sizeof(dp)); for (int i 0; i < 5; i)cout << dp[i] << " "; memset(dp, 127, sizeof(dp)); for (int i 0; i < 5; i)cout << dp[i] << " "; 代码结果如下&#xff1a; 现在我们来分…...

Java面向对象——多态

即同一个方法可以根据发送对象的不同而采用多种不同的行为方式。 一个对象的实际类型是确定的&#xff0c;但可以指向对象的引用的类型有很多&#xff08;父类&#xff0c;有关系的类&#xff09;。 多态存在的条件&#xff1a; 1. 有继承关系&#xff1b; 2. 子类重写父类…...

python 对矩阵与矩阵之间对应位置的元素,做softmax操作,代码实战

1.对矩阵中对应位置的元素&#xff0c;做softmax 对于一个向量&#xff0c;softmax函数会对其中每一个元素进行指数运算&#xff0c;然后除以所有元素指数和的结果。当将其应用到多个矩阵的相应位置上时&#xff0c;我们实际上是在对每个位置的一组数&#xff08;从各个矩阵的同…...

Angular前端项目在Apache httpd服务器上的部署

Apache Httpd和Tomcat主要区别&#xff1a;Tomcat是一个Java Servlet容器&#xff0c;用于运行Java Servlet和JavaServer Pages&#xff08;JSP&#xff09;&#xff0c;而Apache HTTP服务器是一个通用的Web服务器&#xff0c;用于提供静态和动态内容。 Apache httpd安装&#…...

Oracle 更改数据文件位置的几种常用方式

Oracle 更改数据文件位置的几种常用方式 A.归档模式下 1、offline 表空间&#xff1a;alter tablespace tablespace_name offline&#xff1b; 2、复制数据文件到新的目录&#xff1b; 3、rename 修改表空间&#xff0c;并修改控制文件&#xff1b; 4、online 表空间&#xf…...

【opencv】图像畸变校正

接上篇文章&#xff1a;【鱼眼&#xff0b;普通相机】相机标定 附代码&#xff1a; 方法一&#xff1a; 使用cv2.undistort """Create May 11, 2024author Wang Jiajun """import cv2 import numpy as npdef correct(img,camera_fileE:/cali…...

Charger之二输入电压动态电源原理(VIN-DPM)

主要内容 Charger的VIN-DPM 前篇内容&#xff1a;电池管理IC&#xff08;Charger&#xff09;了解一下&#xff1f; 领资料&#xff1a;点下方↓名片关注回复&#xff1a;粉丝群 正文 一、 VIN-DPM概念 VIN-DPM是指输入电压动态电源管理&#xff08;Input voltage dynamic…...

【半夜学习MySQL】表结构的操作(含表的创建、修改、删除操作,及如何查看表结构)

&#x1f3e0;关于专栏&#xff1a;半夜学习MySQL专栏用于记录MySQL数据相关内容。 &#x1f3af;每天努力一点点&#xff0c;技术变化看得见 文章目录 创建表查看表结构修改表删除表 创建表 语法&#xff1a; create table table_name(field1 datatype,field2 datatype,fiel…...

曲线救国:window 安装 docker

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…...

番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)

前言:Hello大家好,我是小哥谈。PyQt5是一个Python绑定的Qt库,是用于创建图形用户界面(GUI)和其他应用程序组件的工具包。PyQt5提供了许多GUI元素,如按钮、文本框、标签等,也提供了许多Qt的功能,如网络、数据库、XML等。通过PyQt5可以在Python中使用Qt的丰富功能和强大的工…...

Pascal Content数据集

如果您想使用Pascal Context数据集&#xff0c;请安装Detail&#xff0c;然后运行以下命令将注释转换为正确的格式。 1.安装Detail 进入项目终端 #即 这是在我自己的项目下直接进行克隆操作&#xff1a; git clone https://github.com/zhanghang1989/detail-api.git $PASCAL…...

【Unity】使用Resources.LoadAll读取文件的顺序问题

最近在做客户的一个项目&#xff0c;其中的一个模块使用到了照片&#xff0c;但是发现了一个很严重的问题。当你在使用Unity的时候&#xff0c;它竟然不按照顺序读取&#xff1f;这个机器人是不是逻辑有问题&#xff1f;如下图&#xff1a; 名字脱敏了哈。。。 照片比较多&…...

pdf怎么标注红色方框?五种PDF标注红色方框方法

pdf怎么标注红色方框&#xff1f;在当今数字化时代&#xff0c;PDF文档已成为我们日常工作和学习中不可或缺的一部分。然而&#xff0c;如何在海量的PDF文件中快速、准确地标注出重要信息&#xff0c;让内容更加醒目呢&#xff1f;今天&#xff0c;我将向大家介绍五种PDF标注红…...

C++字符串细节,面试题06

文章目录 22. 字符串22.1. 字符数组 vs 字符指针 vs 常量字符指针 vs string22.2. strcpy vs sprintf vs memcpy22.3. strlen vs length vs size vs sizeof22.4. 字符串之间的转换22.5 其他数据类型与字符串之间的转换22.6 字符串分割 22. 字符串 22.1. 字符数组 vs 字符指针 …...

AutoModelForCausalLM.from_pretrained 函数调用本地权重报错

文章目录 1、代码报错的位置&#xff08;前情提要&#xff09;finetune_lora.shfintune_clm_lora.py 2、报错截图2.1、huggingfaces上的 meta-llama/Llama-2-7b-chat-hf2.2、服务器上模型文件路径 3、特别注意事项 1、代码报错的位置&#xff08;前情提要&#xff09; 在终端直…...

【qt】动态属性

这里写目录标题 一.属性1.属性的好处2.添加属性3.使用属性 二.只读属性 一.属性 1.属性的好处 说到属性&#xff08;property&#xff09;&#xff0c;你们会想到什么&#xff1f;我会联想到特点&#xff0c;就是一类对象所特有的&#xff0c;在C中&#xff0c;成员数据就是这…...

Git知识点总结

目录 1、版本控制 1.1什么是版本控制 1.2常见的版本控制工具 1.3版本控制分类 2、集中版本控制 SVN 3、分布式版本控制 Git 2、Git与SVN的主要区别 3、软件下载 安装&#xff1a;无脑下一步即可&#xff01;安装完毕就可以使用了&#xff01; 4、启动Git 4.1常用的Li…...

【数据库】数据库指令

一。数据库打开 1.命令行 2.进入mysql mysql -uroot -p密码 3.退出 exit&#xff1b; 二。针对数据库的操作 1.创建数据库&#xff08;有分号&#xff09; create database student; 2.使用数据库 use student 3.删除数据库&#xff08;有分号&#xff09; drop database…...

设计模式——状态模式(State)

状态模式&#xff08;State Pattern&#xff09;是一种行为设计模式&#xff0c;它允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。状态模式通过把对象的每一个状态都封装到一个单独的类中&#xff0c;并将请求委托给当前状态对象来让状态的变化与行…...

废物利用实战:把吃灰的中兴B860AV1.1-T刷成Armbian服务器,跑Docker、挂小雅

旧机顶盒重生计划&#xff1a;中兴B860AV1.1-T改造家庭服务器全指南 当家里闲置的机顶盒积满灰尘时&#xff0c;大多数人会选择丢弃或闲置。但你可能不知道&#xff0c;这些被淘汰的设备往往隐藏着惊人的潜力——只需简单改造&#xff0c;就能变身为一台7x24小时运行的低功耗家…...

终极指南:如何快速上手B站视频转文字工具,解放你的双手

终极指南&#xff1a;如何快速上手B站视频转文字工具&#xff0c;解放你的双手 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为整理B站视频内容而头疼吗…...

2026年AI辅助研发趋势:智能知识问答如何重塑企业知识库的未来?

在2026年的当下&#xff0c;大模型技术已经从最初的"聊天玩具"逐渐渗透到企业级研发的毛细血管中。作为深耕DevOps领域的架构师&#xff0c;我观察到一个显著的变化&#xff1a;企业知识库&#xff08;Knowledge Base&#xff09;正在从单纯的"文档存储中心&quo…...

当Abaqus自带模型不够用:3D Hashin失效准则VUMAT开发心路与参数调试经验谈

突破Abaqus复合材料仿真边界&#xff1a;三维Hashin失效准则开发实战全解析 当面对纤维增强复合材料的复杂失效行为时&#xff0c;Abaqus内置的二维Hashin准则常常显得力不从心。作为一名长期深耕复合材料损伤模拟的工程师&#xff0c;我曾花费六个月时间从理论推导到代码实现完…...

极竞魔方XR大空间亮相孩子王南京城市亲子节

在这个周末的南京&#xff0c;空气中除了初夏的微热&#xff0c;更多的是属于家庭的欢笑声。由母婴童行业领军品牌“孩子王”倾力打造的南京城市亲子节现场人头攒动&#xff0c;成为了全城瞩目的焦点。在琳琅满目的展位与高频互动的游乐项目中&#xff0c;孩子和家长正排队解锁…...

[特殊字符] 零基础搭建「知识科普讲师」数字人|魔珐星云实战指南

在短视频、知识付费、自媒体赛道&#xff0c;知识科普、职场干货、生活常识、读书分享内容需求越来越大。真人出镜成本高、拍摄慢、文案难量产&#xff0c;而AI 数字人讲师可以做到&#xff1a;文案好写、生成快、24 小时可播、风格稳定、形象专业。 本文基于魔珐星云具身智能…...

昇腾CANN ascend-boost-comm:M×N 算子复用是怎么做到的

CANN 生态里 50 多个仓库&#xff0c;每个仓库有十几到几十个算子。这些算子之间存在大量公共功能&#xff1a;内存搬运算子需要数据切分、通信算子需要拓扑发现、融合算子需要 shape 推导。如果每个仓库各自实现一遍&#xff0c;代码膨胀的同时&#xff0c;任何一个公共功能的…...

告别HAL_Delay!用STM32CubeMX定时器PWM模式优雅驱动ULN2003步进电机

基于STM32CubeMX的PWM硬件驱动ULN2003步进电机全方案 在嵌入式开发中&#xff0c;步进电机控制是一个经典课题。传统方法往往依赖软件延时或基础定时器中断&#xff0c;这不仅消耗宝贵的CPU资源&#xff0c;在多任务场景下还会导致系统响应迟滞。本文将展示如何利用STM32定时器…...

多 Harness Control Plane 如何重塑企业云 Agent 架构

Agent 规模化部署的真正瓶颈不是模型&#xff0c;而是 Harness 选择与治理 在生产环境中&#xff0c;工程领导者决定今年要把云 Agent 推到全团队规模&#xff1a;代码迁移、大型特性构建、生产部署、日常运维全线自动化。可一旦真正落地&#xff0c;第一个卡住的永远不是模型能…...

给AI模型选‘口粮’:MIT-BIH、CPSC、PTB-XL,哪个ECG数据集更适合你的项目?

给AI模型选‘口粮’&#xff1a;三大ECG数据集深度评测与实战指南 当心电图&#xff08;ECG&#xff09;分析遇上人工智能&#xff0c;数据质量直接决定模型性能天花板。PhysioNet作为全球最大的生物医学信号开放平台&#xff0c;其收录的MIT-BIH、CPSC-2018和PTB-XL三大经典EC…...