我确实认为自己在Java方面非常有经验,但仍然存在一些我不太确定的小问题。Java:声明和初始化的最佳实践
我总是尝试写出可维护,易读的代码,并以最高的效率为目标。 例如,我只在真正需要时才调用“新”操作符。
这是因为我不想不必要地分配内存。 但支持变量呢?
很多人都倾向于来声明一个String刚分配这样一些长期的屁股方法调用:
字符串帮手= Class.method1()方法2(PARAM).getter();
我总是怀疑这是不是分配比需要更多的内存。 getter已经返回一个新的对象,现在通过引用它来分配更多的内存。 当我多次使用此getter时,辅助字符串很方便,但是如果只需要一次,直接传递该方法而不是声明新变量会更好吗? 这是否真的将内存分配给堆?对象a,b,c,d,e,f,g,h,i,j ...;以及对象a,b,c,d,e,f,g,h,i,j ...;
我希望一些比我更有经验的Java人能告诉我他们是如何处理这样的基本事情的。谢谢! :)
在你的例子中,在_stack_上会使用更多的内存,而不是_heap_。这是一个很小的数目,不值得担心。重要的是,通过给字符串一个有用的名字,你可以使你的代码更加自我记录,因此更具可读性。 –
“getter函数已经返回一个新的对象......” - 不,通常情况下,如果它只是返回一个被调用对象成员的引用,就像大多数getter方法一样。 – Jesper
实际上更重要的是'Class.method1()。method2(param)。getter()'是公然违反[Demeter法](https://en.wikipedia.org/wiki/Law_of_Demeter)(最少知识原则),使得代码与其依赖关系紧密结合,因此更加困难保持。 –