问题描述
1,定义变量,String name = null; name = person.getName();与String name= person.getName();的区别,这2种写法哪种比较好?2,在数据库中,数据表空间与索引表空间的区别,联系及简单实例 问题补充:String name = null;这时系统为其分配内存空间了?还是在 name= person.getName()时,分配内存空间?还有一个问题就是:在一个判断语句当中,判断条件比较长,是定义一个变量好,还是不用管它?例如:if (person.getName(subject.getTip(books.getId()))) {.............}还是 String pName= person.getName(subject.getTip(books.getId()));if (pName) {.........};这2种哪种写法比较好呢? 飞雪无情 写道
解决方案
String name = null;这时系统为其分配内存空间了。这个也分配空间了,这个是一个引用,被存储在栈了,而new出来的对象被存储在堆了。这是只有一个name在栈里。而使用name= person.getName(),就为这个毫无任何目标的name引用找到了一个目标,就说ok,name你跟上他(name= person.getName())...我感觉还定义一个变量好,虽然多了一个引用,占了一定的内存,但是现在内存都比较大,对于举不变量的声明周期很短,会很快被垃圾回收器回收的。增加一个变量,简单明了。。有一种情况一定要定义变量,这就是使用一个函数作为条件的循环。比如while(a.getAge()>1){}这样的一定要定义变量,因为如果不定义每次循环都要执行getAge方法,这个方法简单还好,要是复杂了会影响性能的!
解决方案二:
1.String name = null; name = person.getName();是分开的,先定义一个引用,然后再给引用一个对象。String name= person.getName();是一次完成了上面说的两个步骤。简单第一种,就定义一个引用,在合适的时候再给引用一个对象,节省内存空间!