对于Java的null和""及ArrayList的理解

最近看了看《Thinking in Java》深有感触,把以前的迷惑解开了不少,今天就Java的null和""及ArrayList讲解下,希望对迷惑于此的朋友们有所帮助。

一。代码:
import java.util.ArrayList;


public class testNull
{
	/**
	 * @param args
	 */
	public static void main ( String[] args )
	{

		testNull a=new testNull();
		ArrayList<String> l=a.getTest("");

		if(l==null)
		{
			System.out.println("is null");
		}
		else
		{
			System.out.println("is not null");
		}
	}

	public ArrayList<String> getTest(String item)
	{
		ArrayList<String> list=new ArrayList<String>();
		if(item==null || "".equals(item))
		{
			return null;
		}
		else
		{
			return list;
		}
	}
}


二。讲解
   上述的代码中有两个地方可以测试。
    1.在public ArrayList<String> getTest(String item)方法中,如果if(item==null || "".equals(item))改成if(item==null )则会输出"is not null"
如果加上,则会输出"is null",这说明null和""是不一样的。

    2.if(item==null)则会输出"is not null",但为什么会输出不是空呢?因为这句代码“ArrayList<String> list=new ArrayList<String>();”,事实上,这句代码的意思已经代表在内存区域分配了内存,所以return list是不为空(null)的。但反过来说,如果把ArrayList<String> list=new ArrayList<String>();改成ArrayList<String> list=null;的话则会输出"is null"

   3.我们在用ArrayList和Iterator的时候,希望注意null的判断。

三。小小讲解,希望对大家理解上有所帮助。(^_^ )

你可能感兴趣的:(java,idea)