code:
int value = 100;
Integer a = value;
Integer b = value;
System.out.println(a + "==" + b + " ? " + (a == b));
value = 300;
a = value;
b = value;
System.out.println(a + "==" + b + " ? " + (a == b));
-----------------------------------------------------------------------------
output:
100==100 ? true
300==300 ? false
-----------------------------------------------------------------------------
decompile code:
int value = 100;
Integer a = Integer.valueOf(value);
Integer b = Integer.valueOf(value);
System.out.println((new StringBuilder()).append(a).append("==").append(b).append(" ? ").append(a == b).toString());
value = 300;
a = Integer.valueOf(value);
b = Integer.valueOf(value);
System.out.println((new StringBuilder()).append(a).append("==").append(b).append(" ? ").append(a == b).toString());
-----------------------------------------------------------------------------
JDK source:
public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
}
-----------------------------------------------------------------------------
原来1.5的box和unboxing功能只是个面具,编译器最终还是用了原来1.4的规则进行实现,不过1.5的Integer增加了 public static Integer valueOf(int i)的函数,内部实现了对-128到127之间的Integer对象的缓存,其用意和Boolean.valueOf一样避免过多的创建对象。看来我们今后应该避免写出new Integer(××)的代码了,应该都用Integer.valueOf(××)的方式。同时还有个StringBuilder的细节指的我们注意,这是1.5引入功能等同于StringBuffer的新类,只不过StringBuilder不再考虑线程安全的情况,看来1.5还是有不少针对效率的小细节优化,值得我们注意甚至是对编码习惯的更正。
分享到:
相关推荐
i<300;i++) } uchar kbscan(void) { uchar sccode,recode; p2=0xF0; if((p2&0xF0)!=0xF0;) { delays(); if((p2&0xF0)!=0xF0) { scode=0xFE; while((sccode0x10)!=0) { p2=sccode; if((p2&0...
大约300道C语言考试题,供考试刷题用【程序33】题目:学习gotoxy()与clrscr()函数 1.程序分析:2.程序源代码: #include void main(void) { clrscr();/*清屏函数*/ textbackground(2); gotoxy(1, 5);/*定位函数*/ ...
C语言程序 300实例集 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?...=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } }
Compression decreased file by 300,698,100 bytes. ========================== 补充说明 ========================== 本文档采用离线浏览方式,采集微软官方 MSDN 最新数据,收录了“MSDN Library -.NET Framework...
200表示成功,300以上的状态码通常表示重定向或错误。 - **异常处理**:代码中使用了try-catch块来捕获可能的`CInternetException`,确保程序的健壮性。 总之,获取指定URL的HTML页面涉及到对HTTP协议的理解、网络...
=1&&int0_time==1) { TR0=1; //启动定时器 sec_nb=20; sec_dx=20; int0_time=0;//清标志 } else if(k3!=1&&int0_time==0) { TR0=1; set_timenb=sec_nb; set_timedx=sec_dx; //设置的键值返回保存 } } ...
= ".BMP" && ext != ".PNG" && ext != ".GIF" && ext != ".JPG" && ext != ".JPEG") { alert("仅支持bmp,png,gif,jpeg,jpg格式的图片"); return false; } // 创建Image对象 var img = new Image(); img.src ...
=k&&i!=j&&j!=k)`确保生成的三位数没有重复数字。这种方法体现了C语言中的嵌套循环结构和条件控制,以及对整数的处理能力。 【程序2】是一个奖金计算问题,涉及利润分成算法的实现。程序首先根据给定的利润值(I)...
Compression decreased file by 300,698,100 bytes. ========================== 补充说明 ========================== 本文档采用离线浏览方式,采集微软官方 MSDN 最新数据,收录了“MSDN Library -.NET Framework...
Compression decreased file by 300,698,100 bytes. ========================== 补充说明 ========================== 本文档采用离线浏览方式,采集微软官方 MSDN 最新数据,收录了“MSDN Library -.NET Framework...
Compression decreased file by 300,698,100 bytes. ========================== 补充说明 ========================== 本文档采用离线浏览方式,采集微软官方 MSDN 最新数据,收录了“MSDN Library -.NET Framework...
Compression decreased file by 300,698,100 bytes. ========================== 补充说明 ========================== 本文档采用离线浏览方式,采集微软官方 MSDN 最新数据,收录了“MSDN Library -.NET Framework...
Compression decreased file by 300,698,100 bytes. ========================== 补充说明 ========================== 本文档采用离线浏览方式,采集微软官方 MSDN 最新数据,收录了“MSDN Library -.NET Framework...
8. 第八题,因为没有重复数字,所以每个位置都有5种选择,但是要求个位小于十位,所以是组合问题,总共有(6*5)/2 = 300种。 9. 第九题是排列问题,考虑甲乙不能相对坐,可以先安排其他3人,有3!种方式,然后甲乙两...
=k&&i!=j&&j!=k)`来确保每个位置的数字都不相同。这种方法展示了C语言中的循环控制和条件判断,同时也演示了数组(虽然在这个例子中没有明确使用)的概念,因为数字1到4可以被视为一个数组的元素。 【程序 2】涉及...
=0xf0) { nn=key(); if(nn<=16) { d=c; c=b; b=a; a=nn; } } if(nn<=14) { yinyue(nn); nn=0; } if(nn==15) { d3=1; mm=0xf0; while...
= 13 && event.keyCode != 38 && event.keyCode != 40) { var siteval = $("#name").val(); if (trim(siteval) == "") { $("#auto").hide(); return; } clearTimeout(lazyTime); lazyTime = setTimeout...
#include <windows.h> #include <string.h> #include <stdlib.h> ...=boundarycolor)&&(GetPixel(hdc,n-1,m)!=boundarycolor)&&(n)) { contrary(hdc,n,m,RGB(0,0,255)); } } } }
右下角逐渐弹出广告公告窗口 ①已实现链接可用 ②并突破IE拦截弹出窗口 ③己解决多消息闪烁问题 ...==undefined&&msg1.close!==true) { msg1.show();} else { return true; } } //--> </script>
=0)` 内部的循环用于检测a是否为素数。初始时,b设为2(最小的素数),然后循环递增b直到找到能够整除a的数或b等于a为止。如果在b小于a的情况下找到了能够整除a的数,则说明a不是素数;反之,如果b等于a,那么a就是...