A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王小吉 中级黑马   /  2015-9-19 21:10  /  3980 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

10黑马币
经常会遇到空指针异常问题,如何解决

最佳答案

查看完整内容

给变量赋值 数组别为空

8 个回复

倒序浏览
给变量赋值 数组别为空
回复 使用道具 举报
  这分也给的太快了吧。 而且上面那人的回复真心不准确啊。  
         第一,你要理解为什么会出现空指针异常:   因为你定义一个变量,但是你给他赋值为null. 有一个对象Student,Student有一个方法show();     Student stu = null;    这里是不会报错的。 但是 stu.show();时,这里就会报错。   因为你的stu指向的是null,但是null没有任何方法或属性可以使用,所以报空指针异常. 当出现这种问题时,在myecilpse中哪行报空指针异常,第一反应就是,那一行中那个对象所指向的是null值.   然后根据你的业务,看看给这个对象进行引用的时候,是否代码上面没有将值赋给这个对象.

点评

我觉得你回答的很好。  发表于 2015-9-21 14:59
回复 使用道具 举报
学习了。。。。。。
回复 使用道具 举报
空指针和数组越界是Java最常见的两种异常,排除也最快。为避免这些异常,写代码的时候细心再细心,变量、引用用到再创建并赋值。只要习惯养成了,自然就会减少这种错误。即使难免遇到,排错也很快
回复 使用道具 举报
可以通过debug模式进行调试,找出哪个位置或者是哪个变量出现了null值,然后根据自己编写的代码逻辑思路找出为什么会出现了null值,也可能是代码不小心写错了也说不定,这是我个人的想法!
回复 使用道具 举报
涨知识了。
回复 使用道具 举报
你的问题应该不是空指针的问题吧?应该是野指针的问题。
避免野指针的做法
①定义指针时同时初始化为NULL
②指针解引用之前,先去判断这个指针是不是NULL
③指针使用完之后,将其赋值为NULL
④指针使用之前,将其赋值绑定给一个可用地址空间
例:int a = 0;
      int *p = NULL;
      p = &a;
      if (p!=NULL){
      *p=4;}
      P = NULL;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马