存储引用和对象之间的区别?
之间有什么区别
Player player1 = new Player("John"); players[0] = player1;
和 players[0] = new Player("John");
根据我的理解,第一个存储参考,第二个存储对象。我错了吗?这有什么不同吗?哪个是更好的做法?
问题来源:stackoverflow
对象在堆中复,引用在栈中 引用是对象的一个名字 如果你学过C/C++的话,可以将引用理解为java的指针
比如Student zhangSan=new Student("张三"); 后面new出来的制东西叫对象,这zhidao个zhangSan就是引用,zhangSan只是对象的地址而已。
对于第一个,您正在存储对的引用player 1。这使您可以灵活地在player 1引用数组中的任何方法之前调用存储在其中的任何方法。第二个选项仅表示该对象仅驻留在您的数组内,因此您必须直接调用一个方法,例如player[0].run()。
至于哪种更好的做法,则仅取决于您打算对该对象执行什么操作。如果需要在创建数组中的引用之前对其进行修改,请使用第一个片段。如果只需要使用a实例化大量播放器对象,则只需使用for循环即可直接创建播放器数组。
答案来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。