java小问题 关于string的

来源:百度知道 编辑:UC知道 时间:2024/06/20 16:50:52
public class StringTest{
static String s1;
public static void main(String[] args) {
String s2;
String s3 = "";
System.out.print(s1.isEmpty()); //运行时异常
System.out.print(s2.isEmpty()); //编译出错
System.out.print(s3.isEmpty()); //ok!输出true
}
}
System.out.print(s1.isEmpty()); //运行时异常 为什么呢 ????

s1=null;
null.isEmpty();不出异常才怪

isEmpty()是String类的方法
所有你要先把对象给 new 出来 如:String s1 = new String([""]);
这样才能调用该对象的方法

String s3 = "";
是默认赋值,就是先 new 出来然后赋值为空的字符串,是两步。

--希望解决你的问题

S1 有人答过了,关于S2是因为你没有初始化,对于局部变量是强制初始化的,原因简单的说就是怕你忘了没赋值就使用。

空指针异常,
s1在初始化的时候默认为s1=null;

我觉得可能是以下错误,静态变量应该用类的对象调用,我没试,你试下看看.
StringTest tt=new StringTest();
System.out.print((tt.s1).isEmpty());

没有初始化s1,s2