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

Java八股-数据类型转换有哪些?类型互转会有什么问题?为什么用bigDecimal 不用double ?自动装箱和拆箱?包装类?

Java中有哪些数据类型转换?

显示类型转换:在前面一个括号,里面写上要转换的类型

隐式类型转换:小范围的数据类型转大范围的,int到long,float到double

字符串转整形或浮点:整形:Integer.parseInt();浮点:Double.parseDouble()

类型互转会出现什么问题吗?

时间丢失:大范围转小范围,long-》int

精度丢失:高精度转低精度,double-》float

类型不匹配:会报错

为什么用bigDecimal 不用double ?

double会出现精度丢失的问题,因为double执行的是二进制浮点运算

bigDecimal是精确计算的

自动装箱和拆箱是什么?

自动装箱:基本数据类型转换成其包装类

自动拆箱:包装类转换从基本数据类型

java5引入主要是为了方便操作

实现是通过valueOf()和和xxxValue()实现的

频繁使用自动装箱和拆箱会影响性能

为什么会有包装类?

因为java中的很多方法和类是用来处理类类型的对象的,比如ArrayList这些只能存储类;

泛型也只能使用引用类型;

基本类型和引用类型的转换也必须借助包装类;比如int必须先转换成integer才能转换成String类型。

基本类型和包装类的区别?

性能方面:基本类型占用内存小。包装类型占有内存较大。

比较方式:基本类型用==比较。包装类型==比较的是地址,equals比较的才是值

默认值:基本的默认值为0或false。包装的默认为null

初始化方式:基本是直接赋值。引用需要new

存储方式:基本:局部变量保存在栈上,成员变量在堆中。包装类保存在堆上。

鉴于作者水平有限,文章可能存在错误

如有指正,十分感谢

http://www.lryc.cn/news/2392988.html

相关文章:

  • redis未授权(CVE-2022-0543)
  • 【运维实战】Linux 中su和sudo之间的区别以及如何配置sudo!
  • LevelDB、BoltDB 和 RocksDB区块链应用比较
  • c/c++的opencv图像金字塔缩放
  • PDF文件转换之输出指定页到新的 PDF 文件
  • 浏览器之禁止打开控制台【F12】
  • 进阶智能体实战九、图文需求分析助手(ChatGpt多模态版)(帮你生成 模块划分+页面+表设计、状态机、工作流、ER模型)
  • GEARS以及与基础模型结合
  • SFINAE(替换并不是错误)机制详解详解
  • 怎么用外网打开内网的网址?如在异地在家连接访问公司局域网办公网站
  • 计算机网络 | 1.1 计算机网络概述思维导图
  • AI对软件工程的影响及未来发展路径分析报告
  • redis缓存与数据库协调读写机制设计
  • 最悉心的指导教程——阿里云创建ECS实例教程+Vue+Django前后端的服务器部署(通过宝塔面板)
  • 【Python】os模块
  • Syslog 全面介绍及在 C 语言中的应用
  • windows中Redis、MySQL 和 Elasticsearch启动并正确监听指定端口
  • Paimon远程文件系统连接机制解析
  • 学者观察 | Web3.0的技术革新与挑战——北京理工大学教授沈蒙
  • pycharm终端遇不显示虚拟环境的问题
  • 聊聊网络变压器的浪涌等级标准是怎样划分的呢?
  • 2025年Google I/O大会上,谷歌展示了一系列旨在提升开发效率与Web体验的全新功能
  • ONLYOFFICE文档API:编辑器的品牌定制化
  • HTTP/HTTPS与SOCKS5三大代理IP协议,如何选择最佳协议?
  • 远程调用 | OpenFeign+LoadBalanced的使用
  • NSSCTF [NISACTF 2022]ezheap
  • ADB推送文件到指定路径解析
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十七) -> 开发云函数
  • ansible中的inventory.ini 文件详解
  • 基于AOD-Net与GAN的深度学习去雾算法开发