Is it better to initialize an object in a method after we are sure the method doesn't return null?
我有一个方法,如果满足参数的条件,则可以返回null。例如
1 2 3 4 5 6 7 8 9 10 11 12 | public static ObjectA newObjectA(String param) { ObjectB objB = new ObjectB(); ObjectA objA; if (param == null) { return null; } // do something else return objA; } |
如果在检查空
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public static ObjectA newObjectA(String param) { ObjectB objB; ObjectA objA; if (param == null) { return null; } objB = new ObjectB(); // do something else return objA; } |
在避免objB的内存使用方面是否有任何改进?还是在检查像这样的null参数后移动对象的声明,这会更好吗?
1 2 3 4 5 6 7 8 9 10 11 12 | public static ObjectA newObjectA(String param) { if (param == null) { return null; } ObjectB objB = new ObjectB(); ObjectA objA; // do something else return objA; } |
谢谢你们。
这种方法更好-
1 2 3 4 5 6 7 8 9 10 11 12 | public static ObjectA newObjectA(String param) { if (param == null) { return null; } ObjectB objB = new ObjectB(); // Occupied the memory required by for member variables of ObjectB along with the references ObjectA objA; // Occupy 4 bytes or 8 bytes as explained below. // do something else return objA; } |
因为未初始化的对象虽然不占用太多内存,但是它们确实占用了存储其引用所需的大量内存。在32位系统上,此内存为4字节;在64位系统上,此内存为8字节。