java存储整数_JAVA如何存储整数值

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

今天在读一位JAVA大师的书中发现了一个问题,我觉得很有意思,让我深深思考了一段时间。书上他这样说“变量在进入作用域时创建,在离开作用域时销毁。这就意味着变量一旦离开作用域就不会存储原来的值。因此在方法调用期间,在方法中声明的变量是无法保存其值的。”在他书中的这段话里我只认同前半部分,即变量在进入作用域时创建,在离开作用域时销毁。而后半部分则不然,这位大师试图在书中有一个例子来说明了这段话,他写了一段for循环,里面声明了一个int y,先给它赋值为-1,然后再赋值100,经过了3次循环,发现每次循环的时候输出的都是-1、100,然后他说可见每次进入for循环时,y都被重新初始化为-1了,尽管y后面赋值为100,但该值无法保存。在他的这个例子以及这段话里,我个人感觉有错误,首先变量一旦离开了作用域,也就销毁不复存在了,不管是成员变量还是局部变量,因此也没有保存值的这一说。另外在他的for循环例子里,定义的局部变量y你每次进入for循环都给它重新初始化了,那它的值肯定没有被改变啊。但是想要通过例子来证明很难,你想,假如同这位大师一样,定义一个局部变量试图在方法里改变其值,但是不管怎样,你第二次调用这个方法的时候,你都重新初始化了,但如果你不在方法里初始化,在类里初始化,那么它的值肯定改变了,毕竟它的作用域为整个对象能调用的东西了。另外,假如你想通过方法形参来举例说明这一点,我觉得也是扯淡,实参传给形参的都是实参的副本了,已经不是之前那一个变量了,又怎么能来证明这一点?所以我总结一下,其实很简单,变量在进入作用域时,从声明的位置开始被创建,在离开作用域时销毁。其它的没了。其实我觉得用大括号来谈作用域太浅显了,就像是HOW2J上一样,我觉得他们没有真正理解作用域,不管是任何成员变量、局部变量的作用我觉得都要依托类或者对象,任何成员变量只有在创建了类或者造了对象之后才有意义,任何的局部变量只有在方法里、代码块里才有意义,但是方法、代码块也必须依托对象或者类,没有它俩,方法也毫无意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值