我有一个读取数据的对象:
DataReader dataReader = new DataReader();
反对阅读:
Data data = new Data();
我可以这样读取数据:
dataReader.read(data);
或者我可以将data
传递给dataReader
构造函数并在dataReader
对象中读取它。
什么更有效?
如果read()方法实现的话会更好:
public void read(Data data) {
this.readString(data);
this.readString(data);
}
方法readString(Data data)
:
private void readString(Data data) {
data.nextLine();
}
意思是,拥有一个本地数据对象并调用其方法或在java passes object by value not reference时作为方法参数多次传递它是否更好?什么工作得更快,消耗更少的内存?
答案 0 :(得分:1)
我对你的问题的第二部分你的意思有点不确定,但如果你的意思是我的意思那么这应该回答它。
在构造函数或方法中调用方法完全取决于用法。对于这种情况,您是否会反复阅读这些数据?如果是,那么创建一个DataReader
实例比为每次读取创建一个实例更有效,因此在一个实例上重复使用该方法会更有效。如果您只使用它一次,那么您不希望在完成后将无用的对象实例挂在内存中,因此创建临时实例并在构造函数中读取将更有效。
但正如评论所说,这些事情很少涉及优化问题并且影响不大。理论上它很有意思,但实际上除非必须这样做,否则不要担心它。