java中int和Integer对比的一些坑

简介: --------------------- 作者:狂飙的yellowcong 来源:CSDN 原文:https://blog.csdn.net/yelllowcong/article/details/78434606 版权声明:本文为博主原创文章,转载请附上博文链接! --------------...

--------------------- 
作者:狂飙的yellowcong 
来源:CSDN 
原文:https://blog.csdn.net/yelllowcong/article/details/78434606 
版权声明:本文为博主原创文章,转载请附上博文链接!

--------------------- 

Integer与int类型的关系

Integer是int的包装类,int的默认值是0,而Integer的默认值是null(jdk1.5的新特性 自动装箱和拆箱,Integer.valueOf() 和xx.intValue() ),

需要注意的是Integer里面默认的缓存数字是-128-127,

1、Integer与Integer相互比较,数据在-128-127范围内,就会从缓存中拿去数据,比较就相等;如果不在这个范围,就会直接新创建一个Integer对象,使用 == 判断的是两个内存的应用地址,所以自然不相等。

2、Integer和int类型相比,在jdk1.5,会自动拆箱,然后比较栈内存中的数据,所以没有不想等的情况

int跟int比较

int数据类型,都是在栈内存中存储,如果这个数字在栈内存中存在就会直接指向这个内存地址,如果不存在,就会重新开辟内存空间,所以int和int类型的比较,相同的值不会存在内存不等的情况

八个基本数据类型不能看作对象(这点很特殊),存放在栈中。栈内操作速度快,创建销毁很容易

 

 

int跟Integer比较

会自动拆箱,变成int与int对比

 

Integer跟Integer比较

  在-128~127的范围内,==会相等,获取的cache的地址

  不在上述范围内,会去new一个对象对比

  直接new对象的话,肯定不等于

 

 



虽千万人,吾往矣!
目录
相关文章
|
11月前
|
存储 缓存 人工智能
Java int和Integer的区别
本文介绍了Java中int与Integer的区别及==与equals的比较机制。Integer是int的包装类,支持null值。使用==比较时,int直接比较数值,而Integer比较对象地址;在-128至127范围内的Integer值可缓存,超出该范围或使用new创建时则返回不同对象。equals方法则始终比较实际数值。
352 0
|
存储 C语言 Python
[oeasy]python077_int类型怎么用_整数运算_integer_进制转化_int类
本文主要讲解了Python中`int`类型的应用与特性。首先回顾了`int`词根的溯源,探讨了整型变量的概念及命名规则(如匈牙利命名法)。接着分析了整型变量在内存中的存储位置和地址,并通过`type()`和`id()`函数验证其类型和地址。还介绍了整型变量的运算功能,以及如何通过`int()`函数将字符串转化为整数,支持不同进制间的转换(如二进制转十进制)。此外,文章提及了关键字`del`的使用场景,对比了Python与C语言中`int`的区别,并总结了整型与字符串类型的差异,为后续深入学习奠定基础。
365 1
|
存储 算法 Java
Java零基础-charAt(int index)详解
【10月更文挑战第20天】Java零基础教学篇,手把手实践教学!
517 4
|
存储 算法 Java
Java零基础-charAt(int index)详解
【10月更文挑战第16天】Java零基础教学篇,手把手实践教学!
406 1
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
676 3
|
存储 缓存 Java
int 和 Integer 哪一个占用更多内存?
【8月更文挑战第21天】
731 0
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
这篇文章解释了Java中`int`基本数据类型和其包装类`Integer`之间的区别,并指出在进行`==`运算时,`Integer`会拆箱为`int`类型,然后比较它们的值是否相等。
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
【Java基础面试十】、何对Integer和Double类型判断相等?
这篇文章讨论了如何在Java中正确比较`Integer`和`Double`类型的值,指出不能直接使用`==`操作符比较不同类型,而应该将它们转换为相同的基本数据类型(如`double`)后进行比较。
【Java基础面试十】、何对Integer和Double类型判断相等?
【Java基础面试五】、 int类型的数据范围是多少?
这篇文章回答了Java中`int`类型数据的范围是-2^31到2^31-1,并提供了其他基本数据类型的内存占用和数值范围信息。
【Java基础面试五】、 int类型的数据范围是多少?
|
Java
java lab8--------7-2 sdut-JAVA-Insert Integer element into array lists
java lab8--------7-2 sdut-JAVA-Insert Integer element into array lists
164 0