什么是空指针异常
来源:互联网 发布:淘宝好评返现处罚条例 编辑:程序博客网 时间:2024/05/17 17:18
日常开发过程中,最常见的异常莫过于NullPointerException,之前的时候,只是知道去找到报错的位置,然后去解决它,最近有空学习C语言,就去深究了下NullPointerException异常的本质。
发生NullPointerException的情况:
调用 null 对象的实例方法。访问或修改 null 对象的字段。如果一个数组为null,试图用属性length获得其长度时。如果一个数组为null,试图访问或修改其中某个元素时。在需要抛出一个异常对象,而该对象为 null 时。
首先,我们先找到java.lang.NullPointerException这个类,内容很简单:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
NullPointerException翻译过来便是空指针,接下来我们首先要了解的是什么是指针,对于非C/C++的程序员来说,很多其它语言开发者对指针的概念很模糊,说白了,指针就是存储变量的内存地址,在C语言里面,NULL表示该指针不指向任何内存单元,0表示指向地址为0的单元(这个单元一般是不能使用的)。先看一段C语言代码:
- 1
- 2
- 3
- 4
- 5
- 6
在C语言里,你可以读取NULL本身的值(void *)0,即0,但是读取它指向的值,那是非法的,会引发段错误。而Java里面的NULL就是直接指向了0,上述也说了,指向地址为0的单元,一般是不能使用的。
一句话总结:因为指向了不可使用的内存单元,虚拟机无法读取它的值,最终导致NullPointerException。
http://blog.csdn.net/pangpang123654/article/details/52370669
阅读全文
0 0
- 什么是空指针异常
- 什么是内存泄漏?野指针?悬挂指针?空指针异常?
- null与空串的区别,什么是空指针,如何解决空指针异常
- 什么是空指针
- 空指针异常
- struts2空指针异常
- Struts2 空指针异常
- hibernate 空指针异常
- NullPointerException空指针异常
- 空指针异常总结
- getServletContext()空指针异常
- 空指针异常
- Hibernate空指针异常
- struts2空指针异常
- 空指针异常
- NullPointerException空指针异常
- 空指针异常
- 空指针异常
- 代码优化,常见总结
- 5. Longest Palindromic Substring
- on()的多事件绑定
- HDU 3472 HS BDC 混合图欧拉路径 最大流
- android在创建程序出现的类似:Failed to load C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.0-previ
- 什么是空指针异常
- 数位平方和(rms2017模拟14-2)* * *【推理】
- 《Java核心技术》第10版读书笔记之Chap5(1)——类的继承
- 解决图片hover后添加边框晃动问题
- Spring ioc 底层原理
- java学习初探九之String
- 第十章 会话管理(三) 会话监听器
- 初识python,请各位大牛指点—登录模块
- 常用代码