先看第一段代码,如下
PrintWriter out = null;
private PrintWriter getOut(HttpServletResponse response){
try {
PrintWriter out = response.getWriter();
} catch (IOException e) {
log.debug("init OutObject to IOException");
e.printStackTrace();
}
return out;
}
第二段代码如下
PrintWriter out = null;
private PrintWriter getOut(HttpServletResponse response){
try {
out = response.getWriter();
} catch (IOException e) {
log.debug("init OutObject to IOException");
e.printStackTrace();
}
return out;
}
测试一下我们的out对象
@RequestMapping("/updateUserPassword.ca")
public void getUnameById(HttpServletRequest request,HttpServletResponse response) {
String result = "200";
out.print(result);
}
这个时候空指针了,没错!就是out空了,为什么呢!
你在class里面定一个变量
然后 在 方法里面覆盖了这个变量
等你方法结束后,你方法内的out的生命周期就结束了
也就是说,在方法里执行out,没问题,他得到了一个对象,但在return的时候,这个out对象的生命周期结束了,结果你return了一个null
分享到:
相关推荐
Java 变量的生命周期和作用域是密切相关的,变量的生命周期可以分为三个阶段:定义、初始化和销毁,而作用域可以分为四种:方法作用域、块作用域、类作用域和实例作用域。同时,函数的概念与作用是实现代码的重用性...
在VB(Visual Basic)编程中,变量的生命周期是编程中非常关键的概念,它涉及到变量的创建、使用和销毁。变量的生命周期是指从变量被声明到它不再被使用并被系统回收的时间段。理解变量的生命周期有助于避免程序运行...
- 生命周期:成员变量和类变量的生命周期与对象或类的生命周期相关,局部变量的生命周期与方法调用相关。 - 访问权限:成员变量和类变量可以通过对象或类名访问,局部变量只能在其声明的代码块内访问。 - 初始化:类...
### 类变量与实例变量 ...类变量和实例变量虽然都是用来表示对象状态的信息,但它们的生命周期、存储位置以及访问方式都有所不同。正确地理解和使用这两种变量能够帮助开发者更高效地设计和实现面向对象的程序。
"C++ 变量的生命周期和作用域" C++ 中的变量生命周期和作用域是两个相关但不同的概念。变量的生命周期指从变量被分配空间到空间被收回的这个时间段,而变量的作用域则指变量能使用的范围。 变量的声明位置决定了...
// 不需要实例化类就能访问静态变量和方法 Console.WriteLine(MyClass.StaticVar); // 输出10 MyClass.ModifyStaticVar(); Console.WriteLine(MyClass.StaticVar); // 输出11 ``` 在实际编程中,正确选择变量的访问...
2. **生命周期**:类变量的生命周期与类相同,当类被加载时,这些变量的空间被创建;当类不再使用时,这些变量也会被销毁。 3. **默认值**:类变量同样具有默认的初始值。 4. **访问方式**:类变量不仅可以被对象...
在这个周期内,JVM负责管理所有类和对象的生命周期。 **2. Java程序与JVM生命周期的一致性** 程序生命周期与Java虚拟机生命周期是一致的。这意味着Java虚拟机进程从创建起的任务就是执行Java程序,直至程序正常...
在类中的位置不同 成员变量:在类中方法外 局部变量:在方法内或者方法声明处 在内存中的位置不同 成员变量:在堆内存中 局部变量:在栈内存中 ... 成员变量和局部变量的名称可以一致,方法调用的时候采取就近原则
在Java编程语言中,了解不同类型的变量和方法是至关重要的,因为它们构成了程序的基础结构。以下是对标题和描述中提到的概念的详细解释: 1. **成员变量(Member Variables)**: 成员变量,也称为实例变量,是...
全局变量的使用技巧和方法: 1. **限制使用**:尽可能减少全局变量的数量,因为它们增加了程序的复杂性和出错的可能性。 2. **初始化**:全局变量在程序开始时自动初始化,对于非静态全局变量,如果未指定初始值,...
理解成员变量和局部变量的概念对于编写Java程序至关重要。正确选择变量类型可以帮助优化内存使用,提高代码可读性和维护性。在实际编程中,合理利用这两类变量可以实现数据封装,遵循面向对象的原则,从而构建更健壮...
Application 生命周期&全局变量
本文将详细介绍C语言中变量的生命周期,包括定义阶段、使用阶段以及销毁阶段,并探讨不同类型的变量(局部变量、全局变量和静态变量)及其生命周期的特点。 #### 二、变量生命周期的概念 变量生命周期是指变量存在...
- **类作用域**:类的成员变量和成员函数拥有类作用域,只能在类的成员函数内访问,除非使用`this`指针或`->`操作符。 - **命名空间作用域**:命名空间用于解决命名冲突,它为标识符提供了一个独立的命名空间,...
1. **生命周期**:类变量的生命周期始于类加载,结束于类卸载。这意味着,只要类被加载到JVM(Java虚拟机)中,类变量就会存在,无论创建了多少个该类的对象。 2. **作用域**:类变量的作用域在整个类中都是可见的...