很多编程人员,特别是对初学者来讲,对于空指针的认识,足以看出这哥们写了多少代码。如果是一个简单的代码,出现空指针异常,可能大多数编程人员都能不经意间,习惯性的直接改掉了这个错误,但很少有朋友将空指针异常做过总结;当在比较复杂的业务逻辑下,出现空指针异常,很多朋友则是束手无策,为了一个空指针,可能花费的不仅仅是一分钟,一个小时,一天,或者一个星期....;
下面来说说这个空指针,先来看一些实例:
1.最基础的空指针
public static void main(String[] args) {
String a = null;
a.trim();
}
说明:很是简单的代码,因为我们明确的看到 引用a的值是null,则调用a的trim()方法的时候,会出现NullPointException.
2.方法传参
public void show(List list){
System.out.println(list.size());
}
说明:当调用show方法的时候,我们如果使用show(null)这种方式去调用,这时,是编译通过的,但当程序运行的时候,则会报空指针异常,原因在于list这个参数,我们给传递了null.
3.集合中的对象
public static void main(String[] args) {
Object[] os = new Object[10];
for(Object obj : os){
obj.toString();
}
}
说明:首先程序3创建一个数组对象,长度是10,也就是说里面可以放置10个Object对象,接着通过for还遍历里面的对象,调用对象的toString()方法,这时,由于数组对象是存在的,而并没有真正往里面放对象,遍历出来的数据什么也没有,却调用了它的toString()方法,必然会报NullPointException.
【分析&结论】
1.通过上面的三个实例,可以看到,空指针异常无处不在,可以说任何数据都有可能为空(这里说null)应该更准确,说“空”是有问题的,可以想想问题在哪?
2.我们总结发现,如果一个对象(引用更准确)为空,但它并不一定在运行的时候会报空指针异常(很多朋友就有这种想法)。
3.当一个引用或对象为空,而我们去操作(操作指调用了它的属性或方法)了这个对象或引用,则在运行时,会报空指针异常。--------这是最根本的原因所在。
分享到:
相关推荐
Java.lang.NullPointerException 解决方案与原因分析 Java.lang.NullPointerException 是 Java 语言中一种常见的异常,它发生在 Java 应用程序尝试使用 null 对象引用时。这种异常通常是由于程序员错误地认为对象...
### Java.lang.NullPointerException 解决方法详解 在Java开发过程中,`java.lang.NullPointerException`(简称NPE)是一种常见的运行时异常。它发生在试图对空对象执行操作时,例如调用对象的方法或访问其属性等。...
Java.lang.NullPointerException 的可能原因及处理 Java.lang.NullPointerException 是 Java 语言中最常见的异常之一,它的出现通常是由于编程不当或对象未被正确初始化所致。在本文中,我们将探讨 Java.lang....
这个错误通常伴随着`java.lang.NullPointerException`异常,导致在启动Tomcat服务器时不断弹出错误对话框。这种情况下,尽管后台没有明显的错误日志,但频繁出现的警告窗口无疑会给开发工作带来不便。 ### 错误分析...
java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.ImageView.setImageResource(int)’ on a null object reference 今天在家练习ListView的时候,遇到一个java.lang....
java.lang.NullPointerException出现的几种原因及解决方案 java.lang.NullPointerException是Java中最常见的异常之一,它经常出现在日常编程中。了解java.lang.NullPointerException的原因和解决方案对于Java开发者...
at com.semaphore.jna.md.MDLibrary.<clinit>(MDLibrary.java:39) at com.semaphore.jna.idevice.win.WinDeviceLibrary.addNotificationHandler(WinDeviceLibrary.java:61) at ...
解决报错:java.lang.NullPointerException 解决方法:将文件的编码方式改为utf-8即可! 截图: 修改成功后: 代码: import os import json import re def json_to_html(i,cvenum): print('正在处理:'+...
at com.example.YourClass.yourMethod(YourClass.java:XX) ``` 其中,`YourClass`是你程序中的类名,`yourMethod`是引发异常的方法名,`XX`是异常发生的具体行号。 ### 4. 预防策略 - **初始化变量**:确保在使用...
Java语言的核心库之一就是`java.lang`包,它是最基础且最重要的包,包含了所有Java程序都会用到的一些基本类。这个包中包含了如异常处理、基本数据类型的包装类、数学运算、类和对象操作等核心功能。 异常处理是...
### Myeclipse安装Aptana插件后报java.lang.NullPointerException解决方案 #### 问题背景 在使用Myeclipse的过程中,不少用户遇到了一个较为常见的问题:安装Aptana插件之后,每次启动Myeclipse时都会出现`java....
- **异常路径**:`java.lang.Object -> java.lang.Throwable -> java.lang.Exception -> java.lang.RuntimeException -> java.lang.NullPointerException` - **解释**:当应用程序尝试使用未初始化的对象引用调用...
在上述问题中,开发者遇到了一个特定的错误:“javax.xml.transform.TransformerException: java.lang.NullPointerException”。这个错误通常表明在尝试执行XML转换时,某个对象没有被正确地初始化或者为null。我们...
在Java编程语言中,`java.lang.Throwable` 是所有错误(Error)和异常(Exception)的顶级父类,它是异常处理机制的基础。`Throwable` 类提供了封装异常信息的方法和属性,使得开发者能够对程序中出现的问题进行捕获...
在Java XML处理中,如果遇到 `javax.xml.transform.TransformerException: java.lang.NullPointerException`,则可能是由于XML处理库在执行转换过程中遇到了 null 引用。解决方法可能包括检查输入数据的完整性、配置...
`java.lang.ExceptionInInitializerError` 是Java编程语言中一种比较特殊的异常,通常在类的静态初始化过程中遇到问题时抛出。这个错误意味着在初始化类的静态变量或静态初始化块(static block)时发生了异常。这类...
希望高手指点
出现此问题时使用:java.lang.NullPointerException at org.json.JSONObject.(JSONObject.java:144) at org.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43) at org.apache.sqoop....
FtpUtil.java 包
项目中碰到的,已解决,写个文档记录一下