java吧 关注:1,236,992贴子:12,705,588
  • 18回复贴,共1

不太明白这个方法里边new出来的对象为什么是同一个呢?

只看楼主收藏回复


不是每new一次,都会在堆内存里边开辟一块空间吗?
为什么老是说这是相同的对象呢?
不知道我这么理解对不对
【这个项目中的目标操作对象只有一个,所以不需要new2次】


IP属地:山东1楼2022-03-06 22:32回复
    你现在先别纠结这些,以后学堆栈方法区,慢慢就理解了,现在只要会用就行


    IP属地:山东来自Android客户端2楼2022-03-06 22:52
    回复
      你的理解对


      IP属地:日本来自iPhone客户端3楼2022-03-06 23:09
      回复
        单例模式吗


        IP属地:四川来自Android客户端4楼2022-03-06 23:10
        回复
          是2个对象 你说的对


          IP属地:辽宁来自Android客户端5楼2022-03-06 23:11
          回复
            你名称不要搞太绕了


            IP属地:辽宁来自Android客户端7楼2022-03-06 23:17
            收起回复
              意思是每个方法新创建功能一样的对象,那为何不用一个对象去做这两件事


              IP属地:北京来自iPhone客户端8楼2022-03-06 23:18
              回复
                意思就是直接new一个对象进行操作,然后在两个方法里面调用的时候可以省了一个内存空间。


                IP属地:广东来自Android客户端9楼2022-03-06 23:29
                回复
                  方法中创建的对象是局部变量,上下两个方法分别在堆中创建了两个studentDao对象


                  IP属地:陕西来自iPhone客户端11楼2022-03-06 23:39
                  回复


                    IP属地:广东来自Android客户端13楼2022-03-06 23:41
                    回复
                      你对 他这个讲的不清楚


                      IP属地:广西来自Android客户端14楼2022-03-07 03:25
                      回复
                        你对


                        IP属地:江苏15楼2022-03-07 10:20
                        回复
                          Java新人入职工作辅导,耐心负责,全5星好评,解决包装简历怕辞退,工作开发难等问题,V study_51ctofx


                          IP属地:北京来自Android客户端16楼2022-03-07 14:10
                          回复
                            我觉得一楼的图在表述上有问题。
                            用成员变量还是局部变量根本不是优不优化的问题,而是你需求上是不是需要用同一个对象。
                            像一楼的图,假如你的stu存储在dao类的一个成员变量的数组里,你能先走add再判断exist?除非你的dao是用单例构造的。而如果你是把数据持久化到其他地方,从最简单的角度来说你都可以用静态方法去实现,压根不用new都行……


                            IP属地:辽宁17楼2022-03-08 16:55
                            回复
                              所以他说的从逻辑上就压根不应该这么考虑,就应该是局部变量方法调用结束后被回收,成员变量跟着自己所在的类和对象走就完了,具体怎么用不得看自己想要干啥……


                              IP属地:辽宁18楼2022-03-08 16:59
                              回复