Java中int和integer的区别,java中的integer什么意思
如何解决写爬虫IP受阻的问题?立即使用。
java中int和integer的区别
int是基本数据类型,int变量存储数值;Integer是一个引用数据类型,实际上是一个对象。Integer存储引用对象的地址。。
int的默认值为0,Integer的默认值为null;
int类型直接存储数值,Integer需要实例化对象并指向对象的地址。
int和Integer所占内存比较:
整数对象占用更多的内存。Integer是一个对象,需要存储该对象的元数据。但是int是一种原始类型的数据,所以占用的空间比较少。
非new生成的Integer变量与new Integer()生成的变量比较,结果为false。
/**
*将非new生成的整数变量与new生成的整数变量进行比较
*/公共类测试{
公共静态void main(String[] args) {
整数i=新整数(200);
整数j=200
system . out . print(I==j);//输出:false
}
}因为非new生成的Integer变量指向java常量池中的对象,而new Integer()生成的变量指向堆中新创建的对象,所以两个变量在内存中的地址是不一样的。所以输出是假的。
两个非new生成的Integer对象进行比较
如果两个变量的值在区间[-128,127]内,比较结果为真;否则,结果为假。
/**
*比较两个不是由new生成的整数变量
*/公共类测试{
公共静态void main(String[] args) {
整数i1=127
整数j1=127
system . out . println(i1==J1);//输出:真
整数i2=128
整数j2=128
system . out . println(I2==J2);//输出:false
}
}当}java编译Integer i1=127时,会翻译成Integer i1=Integer.valueOf(127)。
Integer变量(无论是否是new生成的)与int变量比较
只要两个变量的值相等,结果就为真。
/**
*比较整数变量和整数变量
*/公共类测试{
公共静态void main(String[] args) {
整数i1=200
整数i2=新整数(200);int j=200
system . out . println(i1==j);//输出:真
system . out . println(I2==j);//输出:真
}
}包装类Integer变量与基本数据类型int变量比较时,会自动将整数解包到int中,然后进行比较。其实比较两个int变量,它们的值是相等的,所以是真的。java中int和integer有什么区别?更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。