关于改变integer的值,高手飘过吧~~

gwjupiter 2009-03-10 12:56:49
昨天遇到个需要改变integer值的问题,找API发现竟然没有相应的函数
今天随便试了下,才发现可以这样改变,呵呵
看代码:


public class IntegerTest {

public static void change(Integer i)
{
i = 8;
}

/**
* @param args
*/
public static void main(String[] args) {
Integer a = new Integer(9);
a ++;
System.out.println(a);
change(a);
System.out.println(a);
}

}




...全文
369 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
winthesky 2009-03-15
  • 打赏
  • 举报
回复
你用1.4肯定编译不过,这个只不过是1.5的自动封装,自动包装的新特性
beiouwolf 2009-03-13
  • 打赏
  • 举报
回复
Integer本身并不能运行
这个基本类型的支持类只是重写过了操作符而已
他改变的只是类内部的值而已

还有你没搞清楚引用传递和值传递的区别

ningandjin 2009-03-13
  • 打赏
  • 举报
回复
楼上正解
moolf 2009-03-13
  • 打赏
  • 举报
回复
路过!
fangchenxuan 2009-03-11
  • 打赏
  • 举报
回复


1.
Interger a=new Interger(3);
Interger b=new Interger(3);
System.out.println(a.equals(b))
输出结果为true
2.
Interger a=new Interger(3)
Interger b=new Interger(3);
System.out.println(a==b);
输出结果为false
3.
Interger a=3;
Interger b=3;
System.out.println(a==b);
输出结果为:true;
4.
Interger a=300;
Interger b=300;
System.out.println(a==b);
输出结果为:false
Interger 定义的变量范围为0-127,如果超出了范围值为false
ZangXT 2009-03-11
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 Ostroff 的回复:]
引用 1 楼 liangchuanqi8624 的回复:
Integet和int之间是JVM自动封装和解封的,这样当然可以了啊.

在必要的时候JVM会进行自动包装和自动解包装。。
[/Quote]
谁家的jvm这么强悍?
Ostroff 2009-03-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangchuanqi8624 的回复:]
Integet和int之间是JVM自动封装和解封的,这样当然可以了啊.
[/Quote]
在必要的时候JVM会进行自动包装和自动解包装。。
gwjupiter 2009-03-11
  • 打赏
  • 举报
回复
汗,我的意思是,对于integer可以像int一样进行运算,因为遇到改变integer值的问题,网上的解释是必须重新new个带新值的integer出来
传奇 2009-03-10
  • 打赏
  • 举报
回复
Integet和int之间是JVM自动封装和解封的,这样当然可以了啊.
ZangXT 2009-03-10
  • 打赏
  • 举报
回复
欺骗自己?
lysky521 2009-03-10
  • 打赏
  • 举报
回复
是对象 和引用之间的 传递问题
Fish3812 2009-03-10
  • 打赏
  • 举报
回复
这个是值传递 和引用传递的问题吧。。。
如一宝宝 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ningandjin 的回复:]
楼主在玩大家吗?
[/Quote]
ningandjin 2009-03-10
  • 打赏
  • 举报
回复
楼主在玩大家吗?
axman 2009-03-10
  • 打赏
  • 举报
回复
他那个应该是共它代码的缓存,改变一下数字重新编译一下就知道了。
ligy19840101 2009-03-10
  • 打赏
  • 举报
回复
a的值不可能变啊!
KingZChina 2009-03-10
  • 打赏
  • 举报
回复
啥意思啊? a也没变成8啊
liangpei2008 2009-03-10
  • 打赏
  • 举报
回复
LZ想说明什么?
明显没有改变Integer的值啊
axman 2009-03-10
  • 打赏
  • 举报
回复
public static void main(String[] args) {
Integer a = new Integer(999);
a ++;
System.out.println(a);
change(a);
System.out.println(a);
}
结果再看看
songbeirui 2009-03-10
  • 打赏
  • 举报
回复
public static void main(String args[]){
Integer a = new Integer(9);
//a++;
a = a+1;
System.out.println(a);
change(a);
System.out.println(a);
}

public static void change(Integer a){
a = 8;
}
加载更多回复(2)
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧