package com.servlet;
public class Test3 {
public static void main(String args[])
{
String [] s=null;
String linshi="a";
int i=0;
s[i]=linshi;//这里是27行
System.out.print(s[i]);
}}
运行提示
Exception in thread "main" java.lang.NullPointerException
at com.servlet.Test3.main(Test3.java:27)我用的是myeclipse,鼠标移到s[i]=linshi;中的s提示Null pointer access: The variable s can only be null at this location
public class Test3 {
public static void main(String args[])
{
String [] s=null;
String linshi="a";
int i=0;
s[i]=linshi;//这里是27行
System.out.print(s[i]);
}}
运行提示
Exception in thread "main" java.lang.NullPointerException
at com.servlet.Test3.main(Test3.java:27)我用的是myeclipse,鼠标移到s[i]=linshi;中的s提示Null pointer access: The variable s can only be null at this location
package com.fenghua.csdn;public class TestStringArray {
public static void main(String[] args) {
String[] s=null;
String lishi="a";
int i=0;
s=new String[1];
s[i]=lishi;
System.out.println(s[i]); }}
首先这个异常是空指针异常,如果你学过了指针的话那下面的你容易理解了
String[] s=null;
这一句java虚拟机在栈内存里分配了一个内存给了引用变量s,但是这个引用变量s并未指向堆内存中的内存,而这个s呢只指向在堆内存中分配一维String数组的内存,
s[i]=linshi;这一句呢也就是错误的那一句了,因为s并未指向堆内存,而你引用了指向堆内存的s[0]数组元素,那就会出现了空指针异常了,有些地方回答的不是准确,希望不要见怪哦