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

Java中常见包装类型Integer、BigDecimal等特点说明

一、包装类型和基本类型的区别

1、包装类型没有默认值都是 null,而基本类型有默认值
2、一般所有的DTO中属性必须全部使用包装类型,局部变量使用基本类型
3、一般接口全局统一响应的状态码属性,一般使用 Integer 类型
4、包装类型和基本类型用 == 比较会做拆箱操作,所以 Integer == int 可以正常比较

二、 以 Integer 为例,验证一下 Integer 类型的特点

说明:
Integer 类型变量在(-128到127)范围内,用 == 可以正确比较,但如果越过这个范围之外用 == 无法正确比较,必须使用 equals 才可以正确比较

验证:

1、Integer正常范围内 == 比较

        //正常范围内 == 比较
        Integer a = -128;
        Integer b = -128;
        System.out.println("Integer最小范围使用==比较:" + (b==a));
        Integer c = 127;
        Integer d = 127;
        System.out.println("Integer最大范围使用==比较:" + (c==d));

输出:

2、正常范围内 equals 比较

        //正常范围内 equals 比较
        Integer a = -128;
        Integer b = -128;
        System.out.println("Integer最小范围使用equals比较:" + (a.equals(b)));
        Integer c = 127;
        Integer d = 127;
        System.out.println("Integer最大范围使用equals比较:" + (c.equals(d)));

输出:

3、越过正常范围 == 比较

        //越过正常范围 == 比较
        Integer a = -129;
        Integer b = -129;
        System.out.println("Integer越过最小范围使用==比较:" + (a==b));
        Integer c = 128;
        Integer d = 128;
        System.out.println("Integer越过最大范围使用==比较:" + (c==d));

输出:

4、 越过正常范围 equals 比较

        //越过正常范围 equals 比较
        Integer a = -129;
        Integer b = -129;
        System.out.println("Integer越过最小范围使用equals比较:" + (a.equals(b)));
        Integer c = 128;
        Integer d = 128;
        System.out.println("Integer越过最大范围使用equals比较:" + (c.equals(d)));

 输出:

三、总结

1、Integer 类型变量使用 == 进行比较的范围是 -128到127 
2、Integer 类型变量使用 equals 进行比较没有范围限制
3、Integer 类型变量和 int 类型比较也没有范围限制

相关文章:

  • 渗透测试-apt攻击与防御系列-利用WinRAR跨目录获取Net-NTLM Hash和DLL劫持
  • MySQL的多表查询
  • Linux下udev应用
  • Responder的使用
  • 【小月电子】FPGA开发板(XLOGIC_V1)系统学习教程-LESSON6
  • JAVA和JVM和JDK和JRE和JAVA SE 是什么? 他们有什么区别? 怎么区分 编程下哪个?
  • Hydro-bzoj,你用过吗?
  • 【云原生 · Kubernetes】apiserver高可用
  • Mendeley教程(3)引用各种文献
  • 研发中学习git(小趴菜)
  • C++ 数据结构与算法(十三)(单调栈)
  • MySQL高级篇——存储过程和函数中的变量
  • pytorch迁移学习载入部分权重
  • 【正点原子STM32连载】第二十四章 内存保护(MPU)实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  • 【无标题】qml与c++数据交互的一种方式
  • JavaScript 如何正确处理 Unicode 编码问题!
  • [译]如何构建服务器端web组件,为何要构建?
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Django 博客开发教程 16 - 统计文章阅读量
  • docker-consul
  • dva中组件的懒加载
  • ES10 特性的完整指南
  • javascript从右向左截取指定位数字符的3种方法
  • Python 反序列化安全问题(二)
  • ReactNativeweexDeviceOne对比
  • Spring-boot 启动时碰到的错误
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 猴子数据域名防封接口降低小说被封的风险
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 怎么把视频里的音乐提取出来
  • 智能合约Solidity教程-事件和日志(一)
  • No resource identifier found for attribute,RxJava之zip操作符
  • 阿里云ACE认证学习知识点梳理
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #NOIP 2014#Day.2 T3 解方程
  • (1)STL算法之遍历容器
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)创业的注意事项
  • (转载)hibernate缓存
  • ***原理与防范
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .“空心村”成因分析及解决对策122344
  • .gitignore文件设置了忽略但不生效
  • .htaccess 强制https 单独排除某个目录
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。