空指针异常常见原因

时间: 2023-07-09 admin 互联网

空指针异常常见原因

空指针异常常见原因

空指针异常出现在对引用类型的操作上,当引用变量指向为空仍然去操作它的方法和属性时。


1、当在栈区声明了引用类型的变量,而未让该引用变量指向堆区的内存时(即只声明未初始化),再操作该引用变量则出空指针错。如下例:

Map<String,Image> m; //因m没有初始化(m = new HashMap<String,Image>()),所以m仍是空指针。

m.get("one");

2、既声明又初始化了引用变量,但操作该引用变量的语句的作用域 不在 声明该引用变量的语句的作用域内。如下例:

Character me;

GameFrame(String s)
{
super(s);
if(null != background)
this.setBounds(0,0,background.getWidth(null),background.getHeight(null)+20);
this.setVisible(true);
Character me = new Character(true,0,0);
}



public void paint(Graphics g) {
// TODO Auto-generated method stub
//super.paint(g);
g.drawImage( background, 0, 0, null );
me.draw(g);  //由于初始化的引用变量me是局部变量,所以成员变量me仍然为空引用。