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

java篇4-java的数据转换2021-10-13

一、java的数据类型转换
Java的数据类型取值范围排序:
byte<short<int<long<float<double
1.自动类型转换(隐式)
规则:数据范围从小的转化为大的。如int->long,long num = 100;
隐式转换在算数运算中的运用:
(1)取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
(2)byte、short、char三种类型的数据在运算时,都会直接先提升为int,然后再进行运算。
注意这里的数据范围不是存储大小,例如long类型(占8字节)可以隐式转换为float类型(占4个字节)。
下例的输出结果为30.0。

2.强制类型转化(显式):数据范围从大的转化为小的,不符合自动类型转化的转换方式 如:int num = 100L;//报错
格式:范围小的类型 范围小的变量名 = (范围小的类型)原来范围大的类型
如:int num = (int) 100L;//不报错
PS:上例的强制类型转换可以完成是因为原来范围大的类型的数据值没有超过转换成的数据类型的范围,若是超过了强制转换会溢出(溢出不会报错,但是转换后数据的值会改变或者精度损失),所以强制转换不推荐使用。
例外:

如:char a = 65;//不报错,虽然int类型的数据范围比char类型大。
这个例外只对常量有用,含有变量不行。
例如short a=1;short b=2;short c=a+b;//报错,a和b相加时自动转换为int型,结果为int型,报错。
下例输出结果为3:

3.bool类型不能进行数据类型转换,bool类型的true和flase不能当作1和0对待。
4.ASCII码(字符的+操作)
当进行“字符+字符”或“字符+数字”的操作时,会把字符通过ASCII码表查询到对应的数字再进行计算。

下例输出结果为20013,有的编译器下会报错:

补充:int和float比较
int 和 float 在 Java 中都占用 4 字节(32 位),但它们的表示范围确实不同:
int:范围约 -21 亿 到 21 亿(-2³¹ 到 2³¹-1)
float:范围约 ±3.4×10³⁸,远大于 int
两者的存储方式不同:
int 使用定点数表示,采用 二进制补码 格式:
第 1 位:符号位
后 31 位:数值位
所以它只能表示 2³² 个离散的整数值,没有小数部分,每个值精确但范围有限。
float 采用 IEEE 754 单精度浮点数 格式:
第 1 位:符号位
接下来 8 位:指数位
最后 23 位:尾数位
它通过 科学计数法(二进制)来存储:
值 = (-1)^符号 × (1 + 尾数) × 2^(指数 - 127)
这种设计让它可以表示非常大和非常小的数,但代价是:
精度有限:只能精确表示约 6–7 位有效十进制数字
并非所有整数都能精确表示(超过 2²⁴ 的整数开始出现精度损失)
关键理解:范围大不等于精度高
int 范围小,但 所有整数精确
float 范围大,但 精度有限,不能精确表示所有 int 范围内的整数(尤其超过 2²⁴ 时)
例子:

inta=16777217;// 2^24 + 1floatb=a;System.out.println((int)b);// 输出 16777216,精度丢失

二、java的字符串的+操作
当+操作中出现字符串时,进行的是字符串拼接操作。

多个+运算从左到右运算:

http://www.jsqmd.com/news/526451/

相关文章:

  • 从0开始理解并发、线程与等待通知机制(下)
  • 2026年,IT裁员潮来势凶猛,AI正在吞噬开发岗位,学会大模型才是生存之道,建议收藏
  • 别再踩坑了!手把手教你用VMware Workstation 17搭建FusionCompute 6.5.1实验环境(CNA+VRM保姆级教程)
  • RMBG-2.0直播场景应用:OBS虚拟摄像头直连,实时抠像+绿幕替换低延迟方案
  • 从零开始:用ResNet18镜像实现图片内容自动分类
  • Lab: Xv6 and Unix utilities
  • Chrome WebRTC调试实战:从信令到媒体流的全链路问题排查指南
  • LT9211芯片实战:从单路LVDS到双路LVDS的高效转换方案
  • OpenClaw+Qwen3-VL:30B:打造个人多模态AI助手全流程
  • HTML常用CSS样式推荐:打造高效、美观的网页设计
  • SD-MTSP:利用KOA算法优化单仓库多旅行商问题的MATLAB实现,可灵活调整数据集与参数
  • GLM-4-9B-Chat-1M多机部署方案:分布式推理集群搭建
  • 从PSDK到ROS节点:GPS数据订阅与发布的实战封装
  • 文墨共鸣作品集:StructBERT模型下的中文语义分析之美
  • 浦语灵笔2.5-7B实战教程:bash脚本定制化启动与日志调试方法
  • 集简云、简道云、宜搭低代码平台实战选型指南:从功能到场景的深度解析
  • QT桌面应用集成Z-Image-Turbo:开发本地化AI绘画工具
  • Pixel Dimension Fissioner 在VMware虚拟机中的部署与性能测试
  • 2025-2026年铝单板厂家推荐:异形曲面定制设计专业厂家及用户反馈汇总 - 品牌推荐
  • RMBG-2.0创意应用:为LoRA训练准备高质量透明主体数据集方法
  • 2026知识产权转让优质服务机构推荐指南:软件著作知识产权/雏鹰企业项目申报公司/高新技术项目申报/专利申请知识产权/选择指南 - 优质品牌商家
  • 2026年羽绒服品牌推荐:户外探索与都市通勤兼顾靠谱选择及选购指南 - 品牌推荐
  • TTL门电路入门:从硅管到锗管,手把手教你理解三极管逻辑
  • 从渗透测试角度看LOIC和HOIC:合法使用场景与配置技巧
  • 第三方模块requests,文件IO、正则表达式,通过函数封装爬虫应用采集数据
  • 学习日记DAY10
  • 2026年无刷电机厂家推荐:工业自动化高精度需求靠谱品牌与用户口碑分析 - 品牌推荐
  • ESP32S3开发板实战:5分钟搞定USB摄像头Wi-Fi图传(含OV2640配置指南)
  • Pixel Mind Decoder 企业级部署架构设计:高可用与负载均衡实践
  • 如何通过服务优化提升Windows 10系统响应速度?完整技术指南