java 出现NullPointerException的原因及解决办法

日常开发过程中,最常见的异常莫过于NullPointerException,之前的时候,只是知道去找到报错的位置,然后去解决它,最近有空学习C语言,就去深究了下NullPointerException异常的本质。
发生NullPointerException的情况:
首先,我们先找到Java.lang.NullPointerException这个类,内容很简单:
package java.lang;
/**
* Thrown when a program tries to access a field or method of an object or an
* element of an array when there is no instance or array to use, that is if the
* object or array points to {@code null}. It also occurs in some other, less
* obvious circumstances, like a {@code throw e} statement where the {@link
* Throwable} reference is {@code null}.
*/
public class NullPointerException extends RuntimeException {
private static final long serialVersionUID = 5162710183389028792L;
/**
* Constructs a new {@code NullPointerException} that includes the current
* stack trace.
*/
public NullPointerException() {
}
/**
* Constructs a new {@code NullPointerException} with the current stack
* trace and the specified detail message.
*
* @param detailMessage
* the detail message for this exception.
*/
public NullPointerException(String detailMessage) {
super(detailMessage);
}
}
NullPointerException翻译过来便是空指针,接下来我们首先要了解的是什么是指针,对于非C/C++的程序员来说,很多其它语言开发者对指针的概念很模糊,说白了,指针就是存储变量的内存地址,在c语言里面,NULL表示该指针不指向任何内存单元,0表示指向地址为0的单元(这个单元一般是不能使用的)。先看一段C语言代码:
void main() {
int* i = NULL;
printf("%#x\n", i);
printf("%#x\n", &i);
system("pause");
}
在C语言里,你可以读取NULL本身的值(void *)0,即0,但是读取它指向的值,那是非法的,会引发段错误。而Java里面的NULL就是直接指向了0,上述也说了,指向地址为0的单元,一般是不能使用的。
一句话总结:因为指向了不可使用的内存单元,虚拟机无法读取它的值,最终导致NullPointerException。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# NullPointerException
# NullPointerException的原因总结
# NullPointerException解决办法
# java调用webservice的.asmx接口的使用步骤
# Java中ExecutorService和ThreadPoolExecutor运行原理
# Java调用WebService接口作测试
# JAVA调用SAP WEBSERVICE服务实现流程图解
# JAVA WSIMPORT生成WEBSERVICE客户端401认证过程图解
# Java 使用Axis调用WebService的示例代码
# java使用xfire搭建webservice服务的过程详解
# Java使用ExecutorService来停止线程服务
# Java解析调用webservice服务的返回XML串详解
# 在spring boot中使用java线程池ExecutorService的讲解
# Java中避免NullPointerException的方法总结
# Java xml出现错误 javax.xml.transform.TransformerExcept
# Zend Studio for Eclipse的java.lang.NullPointerExcep
# java静态工具类注入service出现NullPointerException异常处理
# 的是
# 你可以
# 那是
# 说了
# 如有
# 希望能
# 很简单
# 就去
# 句话
# 报错
# 谢谢大家
# 要了
# 说白了
# 解决办法
# 最常见
# 抛出
# 先看
# 莫过于
# 过程中
# 而该
相关文章:
西安大型网站制作公司,西安招聘网站最好的是哪个?
如何用搬瓦工VPS快速搭建个人网站?
如何在云主机上快速搭建多站点网站?
制作销售网站教学视频,销售网站有哪些?
建站之星在线版空间:自助建站+智能模板一键生成方案
如何在Ubuntu系统下快速搭建WordPress个人网站?
山东网站制作公司有哪些,山东大源集团官网?
建站之星多图banner生成与模板自定义指南
网站好制作吗知乎,网站开发好学吗?有什么技巧?
建站主机如何选?高性价比方案全解析
Python路径拼接规范_跨平台处理说明【指导】
制作国外网站的软件,国外有哪些比较优质的网站推荐?
建站之星安装后界面空白如何解决?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
如何在阿里云虚拟主机上快速搭建个人网站?
香港服务器部署网站为何提示未备案?
建站三合一如何选?哪家性价比更高?
如何快速生成橙子建站落地页链接?
建站之星如何配置系统实现高效建站?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
宁波免费建站如何选择可靠模板与平台?
PHP正则匹配日期和时间(时间戳转换)的实例代码
免费视频制作网站,更新又快又好的免费电影网站?
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
宝塔面板创建网站无法访问?如何快速排查修复?
建站10G流量真的够用吗?如何应对访问高峰?
建站主机选购指南:核心配置优化与品牌推荐方案
深圳网站制作培训,深圳哪些招聘网站比较好?
详解jQuery停止动画——stop()方法的使用
如何制作网站标识牌,动态网站如何制作(教程)?
如何快速生成ASP一键建站模板并优化安全性?
如何在七牛云存储上搭建网站并设置自定义域名?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
名字制作网站免费,所有小说网站的名字?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
已有域名如何快速搭建专属网站?
建站之星展会模板:智能建站与自助搭建高效解决方案
深入理解Android中的xmlns:tools属性
Python lxml的etree和ElementTree有什么区别
行程制作网站有哪些,第三方机票电子行程单怎么开?
如何用AWS免费套餐快速搭建高效网站?
北京企业网站设计制作公司,北京铁路集团官方网站?
太平洋网站制作公司,网络用语太平洋是什么意思?
建站之星免费版是否永久可用?
php json中文编码为null的解决办法
网站制作费用多少钱,一个网站的运营,需要哪些费用?
韩国服务器如何优化跨境访问实现高效连接?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。