Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';是否更有效:类对象还是对象[](对象数组)?_Java_Performance_Coding Efficiency - Fatal编程技术网

Java 什么';是否更有效:类对象还是对象[](对象数组)?

Java 什么';是否更有效:类对象还是对象[](对象数组)?,java,performance,coding-efficiency,Java,Performance,Coding Efficiency,我不确定用于传输数据的类对象是否比对象数组更有效 我的目标是知道哪个选项最有效,哪个选项是最佳实践 假设这是一个面向数千用户的web应用程序 以下是两个示例案例: A) Model.java Contact.java B) Model.java SomeController.java 选项A是最佳实践,除非您的速度要求无法满足,选项B也可以 请注意,如果您将字段公开为final,并且不使用getter,那么选项A可能会快一点 还要注意,如果有许多基本字段,装箱和拆箱的成本会降低选项B的速度,至于

我不确定用于传输数据的类对象是否比对象数组更有效

我的目标是知道哪个选项最有效,哪个选项是最佳实践

假设这是一个面向数千用户的web应用程序

以下是两个示例案例:

A)

Model.java

Contact.java

B)

Model.java

SomeController.java


选项A是最佳实践,除非您的速度要求无法满足,选项B也可以

请注意,如果您将字段公开为final,并且不使用getter,那么选项A可能会快一点


还要注意,如果有许多基本字段,装箱和拆箱的成本会降低选项B的速度,至于字符串

的值,在这种情况下应该比可读性更高的考虑吗?考虑一个服务于成千上万用户的Web应用程序。如果您注意到任何实质上的差异,我会感到惊讶…这是一个荒谬的琐碎的卷。一个请求通常会生成数百个对象。
public class Model {
    public Contact getContact(long id)
    {
        // some logic

        return new Contact(...);
    }
}
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
}
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;
    }
}
public class SomeController
{

    public void someAction()
    {
        // Option A
        this.setSomeTextTo(contact.getName());

        // Option B
        this.setSomeTextTo(String.valueOf(returningObject[n]));
    }

}