哪个更有效:Class object 或 Object[](对象数组)?
What's more efficient: Class object or Object[] (object array)?
我不确定用于传输数据的 class 对象是否比对象数组更有效。
我的目标是了解哪个选项最有效以及哪个选项是最佳实践。
考虑一下这是一个为成千上万的用户提供服务的 Web 应用程序。
这里是两个示例案例:
A)
Model.java
public class Model {
public Contact getContact(long id)
{
// some logic
return new Contact(...);
}
}
Contact.java
public class Contact
{
private long id;
private String name;
private String surname;
private String email;
private int session;
private byte[] avatar;
// Constructor
public Contact(long id, String name, ...)
// Getters and Setters
}
B)
Model.java
public class Model {
public Object[] getContact(long id)
{
// some logic
Object[] myReturningContact = new Object[n];
myReturningContact[0] = rs.getLong("id");
// ...
myReturningContact[n] = rs.getBytes("avatar");
return myReturningContact;
}
}
SomeController.java
public class SomeController
{
public void someAction()
{
// Option A
this.setSomeTextTo(contact.getName());
// Option B
this.setSomeTextTo(String.valueOf(returningObject[n]));
}
}
选项 A 是最佳做法,除非您有它无法满足的速度要求,而选项 B 可以。
请注意,如果您将字段设置为 public 和 final 并且不使用吸气剂,选项 A 可能会更快一些。
另请注意,如果您有许多原始字段,装箱和拆箱的成本将减慢选项 B,String.valueOf 字符串
我不确定用于传输数据的 class 对象是否比对象数组更有效。
我的目标是了解哪个选项最有效以及哪个选项是最佳实践。
考虑一下这是一个为成千上万的用户提供服务的 Web 应用程序。
这里是两个示例案例:
A)
Model.java
public class Model {
public Contact getContact(long id)
{
// some logic
return new Contact(...);
}
}
Contact.java
public class Contact
{
private long id;
private String name;
private String surname;
private String email;
private int session;
private byte[] avatar;
// Constructor
public Contact(long id, String name, ...)
// Getters and Setters
}
B)
Model.java
public class Model {
public Object[] getContact(long id)
{
// some logic
Object[] myReturningContact = new Object[n];
myReturningContact[0] = rs.getLong("id");
// ...
myReturningContact[n] = rs.getBytes("avatar");
return myReturningContact;
}
}
SomeController.java
public class SomeController
{
public void someAction()
{
// Option A
this.setSomeTextTo(contact.getName());
// Option B
this.setSomeTextTo(String.valueOf(returningObject[n]));
}
}
选项 A 是最佳做法,除非您有它无法满足的速度要求,而选项 B 可以。
请注意,如果您将字段设置为 public 和 final 并且不使用吸气剂,选项 A 可能会更快一些。
另请注意,如果您有许多原始字段,装箱和拆箱的成本将减慢选项 B,String.valueOf 字符串