关于Java代码Integer x=5;int y=x+x;的装箱拆箱次数疑问
关于Java代码中装箱拆箱次数的解析
咱们一步步来拆解你给出的这段代码里的装箱和拆箱操作:
Integer x = 5; int y = x + x;
第一行
Integer x = 5;:1次自动装箱
你把基本类型int的字面量5赋值给了引用类型Integer的变量x,Java会自动执行Integer.valueOf(5),把int值转换为Integer对象,这个过程就是自动装箱,这里发生了1次装箱操作。第二行
int y = x + x;:2次自动拆箱
因为x是Integer对象,而加法运算只能针对基本类型执行,所以Java会先把每个x都自动拆箱成int类型(内部调用x.intValue()),两个x就对应两次拆箱操作。拆箱后的两个int值相加得到int结果,直接赋值给int类型的y,这个环节没有装箱操作。
总结一下:这段代码总共发生了1次装箱操作,2次拆箱操作。
内容的提问来源于stack exchange,提问作者ihavename
相关产品推荐
相关产品推荐

