luc*_*sdc 1 java performance coding-style
我正在开发一个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");
...
}
}
Run Code Online (Sandbox Code Playgroud)
关于性能的问题是:初始化对象的最佳方法是什么?我应该将其设置为new声明还是保持我正在做的方式?
我个人认为这取决于范围.被object_DTO使用的外面if声明?在此代码示例中,使用它可能很有用null.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Note that unless except in certain cases (IoC)
// this scenario is quite easy to avoid
Object_DTO object_DTO = null;
if(request.getParameter("parameter").equals("hello")) {
object_DTO = new Object_DTO();
object_DTO.setAttr("attr");
...
} else if (request.getParameter("parameter").equals("goodbye")) {
object_DTO = new Object_DTO();
}
if (object_DTO == null) {
// Bad response
}
}
Run Code Online (Sandbox Code Playgroud)
否则,总是尝试对变量使用最有限的范围,但在性能方面这是次要的.
然而,在一个单独的表演笔记中,我会停止getParameter()反复呼叫.将其分配给String并改为引用它:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String parameter = request.getParameter("parameter");
if (parameter.equals("hello")) {
Object_DTO = new Object_DTO();
...
}
}
Run Code Online (Sandbox Code Playgroud)