Java 对象的赋值和new出对象再赋值的问题

//场景1

Student studentOne = new Student ();
StudentOne = map.get(1);


//场景2

Student studentTwo = map.get(1);

以上场景的代码逻辑上没有错误,就是性能上不同,所以下面的分析是从性能考虑上分析,让代码更高效.

(1)性能分析:

场景1:首先 new 出一个 Student 对象, 这时会在内存开辟一块新的内存,暂且命名为内存1,这时,studentTwo保存内存1的地址;

接着把map.get(1)的对象的引用赋给 studentTwo ,即此时 studentTwo 指向map.get(1)的对象的内存,暂且命名为内存2.

这时,内存1因为没有被对象引用,成为垃圾,等待JVM的回收.也就是内存1是多余的,并没有被使用.

场景2: 首先声明一个 Student 的引用 studentOne ,此时,并没有开辟内存;接着就是把 map.get(1)的对象的引用赋给 studentOne ,即 studentOne 指向 map.get(1) 的内存.

结论: 如果是需要给对象读写数据,那么需要new,如果只是接收数据,则不需要new.

你可能感兴趣的:(Android,开发中踩过的D级坑,Android,Java,android,java)