Integer与int的区别
来源:互联网 发布:我心伤悲 莫知我哀赏析 编辑:程序博客网 时间:2024/06/06 06:45
最近遇到了一个Integer与int相等的判断时有些模糊,不知道怎么写。特地去查询了一下相关的知识。
int是基本类型之一,Integer是引用类型。也就是说int里面存的是一个实实在在的我们赋予的值,而Integer中存储的是我们赋予值得内存或者引用地址,还做了如下实验
public class IntegerTest {
public static void main(String args[]){
Integer a=new Integer(1);
Integer b=new Integer(1);
int c=1;
Integer d=1;
Integer f=1;
if(a==b){
System.out.println("a==b为真");
}
if(d==c){
System.out.println("d==c为真");
}
if(d==f){
System.out.println("d==f为真");
}
if(d==a){
System.out.println("d==a为真");
}
if(a==c){
System.out.println("a==c为真");
}
}
}
运行的结果:
d==c为真
d==f为真
a==c为真
可以这样解释,a,b都是封装的数据类型,都使用了new来开辟了一块新的内存,其中存放的地址 ,类似于指针。当直接用==比较的应该直接比较的是内存地址,而不是实际指向的值。当使用equals方法时,比较a和b却为真,说明这个方法比较的是值。当Integer与int想比较的时候,比较的是值比较,这里涉及了Integer的自动拆箱的功能,d==c就为真了,a与c的比较也是这个道理。对于d与f的比较,这个涉及到对于常数,它有一个内存,或者说是缓存,当进行d和f的赋值方式时,会自动去内存中找,如果有,则直接把这块引用地址赋值给Integer类型的数据,这就是d==f的原因了。
补充一点:int的默认赋值为0,而Integer默认赋值为null(引用类型)。
- int与integer的区别!
- int 与 Integer 的区别
- int与Integer的区别
- int与integer的区别
- int与Integer的区别
- Integer与int的区别
- int与integer的区别!-
- int与Integer的区别
- Integer 与int 的区别
- Integer与int的区别
- int 与 integer的区别
- Integer与int的区别
- Integer与int的区别
- int与Integer的区别
- Integer与int的区别
- Integer与int的区别
- Integer与int的区别
- Integer与int的区别
- 定时器的合并和变速
- Java中IO流的设计模式
- 【CDP-云设计模式】第4章,6.URL改写模式(URL Rewriting Pattern)
- Button 简单按钮点击事件
- [Array]3Sum Closest
- Integer与int的区别
- Task Schedule
- [leetcode] 198. House Robber
- 对ResultSet 结果集的思考
- Javascript—String类型
- 在Linux使用SFTP接收文件
- 文章标题
- iOS开发中的事件处理(二)-事件传递,响应者链条
- 编程之美 - 电话号码对应英语单词