在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个中文或英文字母\n";
			System.out.println(a);
		}
		if(c.matches("[\\u4e00-\\u9fa5]{1}")!=true){
			error+="性别请用一个中文描述\n";
		}
		if(b.matches("[0-9]{2}")!=true){
			error+="姓名为两位数\n";
		}
		if(d.matches("(13|15|18)[0-9]{9}")!=true){
			error+="电话呢号码为13或15或18开头的11位数\n";
		}
		if(error.length()==0){
			JOptionPane.showMessageDialog(null, "添加成功");
			return true;

		}
		else{
			JOptionPane.showMessageDialog(null, error);
			return false;
		}

	}

如果我们将error的初始值赋值为null,那么我们在接下来对error.length()调用时就会出现空指针错误,这个地方我们就只能把它赋值成""。

  而在一些只是接收输出,不需要调用字符串方法的地方就可以直接不用赋值,直接让它默认为null就可以了。