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异常处理
# 的是
# 你可以
# 那是
# 说了
# 如有
# 希望能
# 很简单
# 就去
# 句话
# 报错
# 谢谢大家
# 要了
# 说白了
# 解决办法
# 最常见
# 抛出
# 先看
# 莫过于
# 过程中
# 而该
相关文章:
网站制作公司排行榜,四大门户网站排名?
Swift中swift中的switch 语句
制作电商网页,电商供应链怎么做?
宿州网站制作公司兴策,安徽省低保查询网站?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
建站主机与服务器功能差异如何区分?
公众号网站制作网页,微信公众号怎么制作?
想学网站制作怎么学,建立一个网站要花费多少?
c# 在ASP.NET Core中管理和取消后台任务
如何通过虚拟主机空间快速建站?
建站主机类型有哪些?如何正确选型
营销式网站制作方案,销售哪个网站招聘效果最好?
如何用PHP快速搭建CMS系统?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
大型企业网站制作流程,做网站需要注册公司吗?
如何在景安服务器上快速搭建个人网站?
利用JavaScript实现拖拽改变元素大小
如何通过FTP空间快速搭建安全高效网站?
开源网站制作软件,开源网站什么意思?
建站之星免费版是否永久可用?
宝塔建站助手安装配置与建站模板使用全流程解析
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站主机与虚拟主机有何区别?如何选择最优方案?
如何快速上传建站程序避免常见错误?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
建站之星伪静态规则如何正确配置?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
高端建站三要素:定制模板、企业官网与响应式设计优化
如何选择美橙互联多站合一建站方案?
建站之星与建站宝盒如何选择最佳方案?
常州自助建站费用包含哪些项目?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
网站制作服务平台,有什么网站可以发布本地服务信息?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
名字制作网站免费,所有小说网站的名字?
小程序网站制作需要准备什么资料,如何制作小程序?
建站主机如何安装配置?新手必看操作指南
动图在线制作网站有哪些,滑动动图图集怎么做?
江苏网站制作公司有哪些,江苏书法考级官方网站?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
英语简历制作免费网站推荐,如何将简历翻译成英文?
广州商城建站系统开发成本与周期如何控制?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
建站DNS解析失败?如何正确配置域名服务器?
建站之星Pro快速搭建教程:模板选择与功能配置指南
C++中引用和指针有什么区别?(代码说明)
*请认真填写需求信息,我们会在24小时内与您取得联系。