javabeans对象中包含对象的javabeans性能
我正在开发一个bean类,它具有多面属性(name有名字、姓氏和中间名)。请比较我的两种方法,以便在我的应用程序中使用相同的方法
方法1:
public class SampleVO {
String firstName;
String middleName;
String lastName;
// getters and setters
}
方法2:
//Main object
public class SampleVO1 {
NameVO name = new NameVO();
// getters and setters
}
//Name object
public class NameVO {
String firstName;
String middleName;
String lastName;
// getters and setters
}
注:以上仅为示例。要求对一组属性进行分组。以上哪种性能/规范标准是好的
# 1 楼答案
这实际上取决于您的用例。如果您需要
NameVO
其他地方,或者将firstName
、middleName
和lastName
封装在一个单独的对象中对您更有意义,那么请使用第二种解决方案。如果这对你来说没有意义,就拿第一个吧这两种解决方案都不应该存在任何性能问题。如果要使用第二种解决方案,可以为
SampleVO1
中的NameVO
属性提供getter和setter。比如说:# 2 楼答案
首先,确保它们是私有的/受保护的。他们不应该在自己的班级之外直接访问:
如果SampleVO1不仅仅是初始化类,那么方法2是可取的
# 3 楼答案
一个单一的间接层次通常并不重要。您看到的延迟通常是一次内存访问,即4-200个时钟周期。对于优化代码,通常小于10纳秒
注意:每个字符串对象中都有两级间接寻址。如果间接寻址破坏了您的性能,那么您将不仅仅使用原语或堆外内存,而不是
String
简言之,成本只是使用一个字符串的成本的一小部分
在考虑性能问题时,您应该从最简单、最清晰的实现开始,只有当您度量了性能问题时,才应该出于性能原因修改代码,并且您应该测试您的更改,因为您的“改进”通常会更差,或者没有更好,只是更复杂