java的integer什么意思,java中integer比较
如何解决写爬虫IP受阻的问题?立即使用。
基础:
1.int是java的基本数据类型,integer是int的封装类。
2.整数变量在使用前必须被实例化,但是int变量不需要。
3.integer实际上是对对象的引用。当新创建一个整数对象时,实际上生成一个指针指向该对象;而int是直接存储的数据值。
4.Integer的默认值为null,int的默认值为0。
延伸:
1.因为整型变量实际上是对整型对象的引用,所以通过new传递的两个整型变量永远不会相等(因为new会生成两个内存地址不同的对象)。
整数i=新整数(100);
整数j=新整数(100);
system . out . print(I==j);//false2。当一个整型变量和一个整型变量比较时,只要两个变量的值相等,那么结果为真。因为integer本质上是int的一个封装类,当两个数比较时,java会自动解包整数,所以本质上是两个int变量的比较。
整数i=新整数(100);
int j=100
system . out . print(I==j);//true3。当new创建的整数变量与不是new创建的整数变量进行比较时,结果为false。因为不是new创建的变量存在于java常量池中,而new创建的变量指向堆中新创建的对象,所以它们的内存地址是不同的。
整数i=新整数(100);
整数j=100
system . out . print(I==j);//false4。比较两个不新的整型变量时,如果两个变量的值在-128到127之间,那么结果为真,否则为假。
对于这个奇怪的结果,java的解释如下:
整数i=新整数(100);//编译时会变成Integer i=Integer。ValueOf(100)和Integer.valueOf()在java API中的定义如下:
(int i)的公共静态整数值{
断言IntegerCache.high=127
if(I=integer cache . low I=integer cache . high){
return integer cache . cache[I(-integer cache . low)];
}
返回新的整数(I);
}也就是对于-128到127的数字,java会缓存,下次赋整数变量时,如果是-128到127并且已经缓存了,就直接从缓存中调用。
PHP中文网站,有很多免费的JAVA入门教程,欢迎学习!这就是java integer和int的区别。更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。