Integer,String等引用内存分析





int和Integer



1) int a=数值 , Integer a=数值 , a=new Integer(数值) 这三者进行==比较时,结果永远为true.

原因:Integer类型与int比较时,Integer会自动拆箱。


2) Integer a=数值 与 a=new Integer(数值)这两者进行==比较时,结果永远为false.

原因:这两者都是引用类型,当前者处于[-128,127]范围内时,会直接从IntegerCache中取;不在[-128,127]范围时,会在堆区new一个新对象,此时两者都是堆中的两个独立的对象。


3) Integer a1=数值 与 Integer a2=数值 比较时看情况:

当两者范围均在[-128,127]里,则两者均指向IntegerCache中对应的值,指向的是同一个值,因此 == 为true。
当两者范围不在[-128,127]中,则a1和a2分别指向堆中的两个独立对象,因此 == 为false。





String















posted @   卡卡发  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示