在java中,我们通常在初识化一个字符串的时候就会面临是把它初始化为" ",还是不用给他赋值让他默认为null。
首先我们讲这两个符号是不同的,区别就在于null就是没有的意思,而""这个是指有一个空白的存在。如果我们创建一个对象赋值为null那么就表示只在堆当中创建了一个变量名,并没有在
栈中为它创建空间,而如果一个对象赋值为""那么它就不仅是在对里创建变量名,还会在栈中为它开辟一个空白的空间。
至于我什么什么后创建变量null什么时候创建"",这就比如接下来这段代码中:
public boolean verification(){
String a = t1.getText();
String b = t2.getText();
String c = t3.getText();
String d = t4.getText();
String error = "";
if(a.matches("[a-zA-Z\u4e00-\u9fa5]{2,9}")!=true){
error +="姓名请输入2-9个中文或英文字母
";
System.out.println(a);
}
if(c.matches("[\u4e00-\u9fa5]{1}")!=true){
error+="性别请用一个中文描述
";
}
if(b.matches("[0-9]{2}")!=true){
error+="姓名为两位数
";
}
if(d.matches("(13|15|18)[0-9]{9}")!=true){
error+="电话呢号码为13或15或18开头的11位数
";
}
if(error.length()==0){
JOptionPane.showMessageDialog(null, "添加成功");
return true;
}
else{
JOptionPane.showMessageDialog(null, error);
return false;
}
}
如果我们将error的初始值赋值为null,那么我们在接下来对error.length()调用时就会出现空指针错误,这个地方我们就只能把它赋值成""。
而在一些只是接收输出,不需要调用字符串方法的地方就可以直接不用赋值,直接让它默认为null就可以了。