一个小问题,希望能解惑?

纯洁袜子 2016-01-15 03:16:27
我一个普通类里面定义了一个私有的变量,get set了下,然后我在action的一个方法里,调用set方法给他赋值,在set前后我都调用get方法输出了他的值,页面上第一次调用这个方法时正常的,但是第二次就感觉好像记住了之前赋的值了,但那个变量又不是静态的。。
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
_南天北落 2016-01-18
  • 打赏
  • 举报
回复
对象的思想。 就像你创建了张三,这次叫张三,下次你还是叫的张三。就是因为你并没有创建李四这个对象,所以你每次都是在调用同一个对象。
xiaovhao 2016-01-15
  • 打赏
  • 举报
回复
我觉得应该是你页面上设置了一个po.num的属性,再次访问当然会有啊
Stluny 2016-01-15
  • 打赏
  • 举报
回复
引用 3 楼 zyb112211 的回复:
[quote=引用 1 楼 Stluny 的回复:] 这个问题很容易回答 不是静态的问题 你这个对象存在哪? 你第一次给他赋值前输出0 是因为没有给变量赋值 int型本身是0 之后赋值了1 输出1 在之后一直输出1 是因为这个对象并没有消亡 一直存在在内存里 你只是调了下这个对象 你之前给这个对赋值过了 所以1 一直在这个对象中 你把获得po这个对象的地方贴出来看看 或者你每次都调用pp这个方法前 都new一次这个po对象 就会出现010101的结果了
为什么啊,我调用完了这个action与这个方法,应该都会释放掉啊[/quote] 你这个Action是Struts? 还是GUI的Action? 你这个setPo方法调用过几次? 在哪里调用的 解释就是这个Po对象一直在内存中 没有每次都新建 java的垃圾回收机制是自己调用的 释放内存这个工作你是怎么做的? 我写了这么久java 真是不会这个技能
纯洁袜子 2016-01-15
  • 打赏
  • 举报
回复
引用 1 楼 Stluny 的回复:
这个问题很容易回答 不是静态的问题 你这个对象存在哪? 你第一次给他赋值前输出0 是因为没有给变量赋值 int型本身是0 之后赋值了1 输出1 在之后一直输出1 是因为这个对象并没有消亡 一直存在在内存里 你只是调了下这个对象 你之前给这个对赋值过了 所以1 一直在这个对象中 你把获得po这个对象的地方贴出来看看 或者你每次都调用pp这个方法前 都new一次这个po对象 就会出现010101的结果了
为什么啊,我调用完了这个action与这个方法,应该都会释放掉啊
纯洁袜子 2016-01-15
  • 打赏
  • 举报
回复
引用 1 楼 Stluny 的回复:
这个问题很容易回答 不是静态的问题 你这个对象存在哪?
你第一次给他赋值前输出0 是因为没有给变量赋值 int型本身是0
之后赋值了1 输出1 在之后一直输出1 是因为这个对象并没有消亡 一直存在在内存里
你只是调了下这个对象 你之前给这个对赋值过了 所以1 一直在这个对象中

你把获得po这个对象的地方贴出来看看 或者你每次都调用pp这个方法前 都new一次这个po对象 就会出现010101的结果了
Stluny 2016-01-15
  • 打赏
  • 举报
回复
这个问题很容易回答 不是静态的问题 你这个对象存在哪? 你第一次给他赋值前输出0 是因为没有给变量赋值 int型本身是0 之后赋值了1 输出1 在之后一直输出1 是因为这个对象并没有消亡 一直存在在内存里 你只是调了下这个对象 你之前给这个对赋值过了 所以1 一直在这个对象中 你把获得po这个对象的地方贴出来看看 或者你每次都调用pp这个方法前 都new一次这个po对象 就会出现010101的结果了

81,092

社区成员

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

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