Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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 Style - Fatal编程技术网

Java 将对象初始化为空或新?

Java 将对象初始化为空或新?,java,performance,coding-style,Java,Performance,Coding Style,我正在开发一个web应用程序,当我在服务器端收到参数时,出现了一个问题。我将DTO的数据传输对象作为局部变量初始化为null,当传递特定参数时,我将对象初始化为new。举例说明我的代码: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Object_DTO object_DTO = null;

我正在开发一个web应用程序,当我在服务器端收到参数时,出现了一个问题。我将DTO的数据传输对象作为局部变量初始化为null,当传递特定参数时,我将对象初始化为new。举例说明我的代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Object_DTO object_DTO = null;

    if(request.getParameter("parameter").equals("hello")) {
        object_DTO = new Object_DTO();
        object_DTO.setAttr("attr");
        ...
    }
}
关于性能,我的问题是:初始化对象的最佳方式是什么?我应该在声明时将其设置为new on declaration还是保持我的方式?

Object\u DTO Object\u DTO=null;不创建任何对象

新建对象\u DTO创建并初始化对象,只有在实际需要对象时才应执行此操作。

Object\u DTO Object\u DTO=null;不创建任何对象


新建对象\u DTO创建和初始化对象,只有在实际需要对象时才应该这样做。

我个人认为这取决于范围。对象是否在if语句之外使用?在这个代码示例中,使用null可能很有用

否则,始终尝试对变量使用最有限的范围,但就性能而言,这是次要的

但是,在另一个性能说明中,我将停止重复调用getParameter。将其指定给一个字符串,并改为引用该字符串:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String parameter = request.getParameter("parameter");

    if (parameter.equals("hello")) {
        Object_DTO = new Object_DTO();
        ...
    }
}

我个人认为这取决于范围。对象是否在if语句之外使用?在这个代码示例中,使用null可能很有用

否则,始终尝试对变量使用最有限的范围,但就性能而言,这是次要的

但是,在另一个性能说明中,我将停止重复调用getParameter。将其指定给一个字符串,并改为引用该字符串:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String parameter = request.getParameter("parameter");

    if (parameter.equals("hello")) {
        Object_DTO = new Object_DTO();
        ...
    }
}

您好,如果您在doPost中使用DTO对象,即使不要求atribute更好地使用new进行设置,否则您所做的一切都是正确的…您能提供更完整的代码吗?因为我不明白为什么不在if中初始化DTO。另外,根据Java中的代码约定,使用CamelCase进行命名。Camel-casing也将是一个好主意。你们指的是Camel-casing,比如:ObjectDto而不是Object\u DTO?你们应该首先考虑清楚性。赋值为=null可能少于1纳秒或完全优化,与其他任何操作相比都微不足道。嗨,如果您在doPost中使用DTO对象,即使不要求atribute更好地使用new进行设置,同时声明其他任何操作都是正确的…您能提供更完整的代码吗?因为我不明白为什么不在if中初始化DTO。另外,根据Java中的代码约定,使用CamelCase进行命名。Camel-casing也将是一个好主意。你们指的是Camel-casing,比如:ObjectDto而不是Object\u DTO?你们应该首先考虑清楚性。赋值为=null可能少于1纳秒或完全优化,与其他任何操作相比都微不足道。在您的示例中,您应该在任何if语句之前初始化对象,并更改最后一个if-to-else块。因为我们不应该重复自己。想象一下,在创建对象之后,你必须为每个if设置5个完全相同的不同字段,并为每个if添加1个不同的设置方法,这将是一个丑陋的问题。完美的答案,正是我需要知道的。实际上,我将其分配给一个字符串,这只是一个简单的示例:。谢谢在您的示例中,您应该在任何if语句之前初始化对象,并更改最后一个if-to-else块。因为我们不应该重复自己。想象一下,在创建对象之后,你必须为每个if设置5个完全相同的不同字段,并为每个if添加1个不同的设置方法,这将是一个丑陋的问题。完美的答案,正是我需要知道的。实际上,我将其分配给一个字符串,这只是一个简单的示例:。谢谢