JavaにおけるStringクラスのisEmptyメソッド、nullおよび「」の違い
4054 ワード
いつもStringのこの3つの空に対してとても気絶して、ちょうど同僚は私に聞いて、私も勉強します.他の人のブログから見たのは、isEmpty()にメモリスペースが割り当てられ、値が空で、絶対的な空です.は、メモリ領域が割り当てられた値(値=NULL)です.値はNULL文字列で、相対的にNULLです.値(値=NULL文字列)nullは未割り当てメモリ領域で、値はありません.値はありません(値は存在しません)
しかし、私はまだぼんやりしていたので、demoの検証を書きました.
Androidしかできないので、Androidのdemoを書きました.効果は同じですね~
ログの結果は次のとおりです.
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
isEmpty
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
引用符
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull: ----------------
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
isEmpty
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
引用符
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull: ----------------
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
nullはそれからstrは空のポインタが間違っています~ここではisEmptyと「」の効果が同じように滴ることがわかりますね.またisEmptyのソースコードを見ました.
つまりStringのテキスト数が0であればtrueを返し、「」のテキスト数は0です.以上のように、nullはメモリ領域が割り当てられていない「空」~isEmptyと引用符の2つの「空」がnullと対向(すなわちそれら!=null)しており、いずれも割り当てられたメモリである(PS:isEmptyと「」がどのように異なるかは不明であり、知っているパートナーはコメントをお願いします.ありがとうございます~)
しかし、私はまだぼんやりしていたので、demoの検証を書きました.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String a = new String();
String b = "";
String c = null;
testString(a);
testString(b);
testString(c);
}
private void testString(String str){
if (str == null){
Log.e("testNull", "null");
}
if (str.isEmpty()){
Log.e("testNull", "isEmpty");
}
if (str.equals("")){
Log.e("testNull", " ");
}
Log.e("testNull", "----------------");
}
Androidしかできないので、Androidのdemoを書きました.効果は同じですね~
ログの結果は次のとおりです.
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
isEmpty
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
引用符
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull: ----------------
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
isEmpty
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
引用符
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull: ----------------
02-15 14:41:10.655 31875-31875/uding.testanimation E/testNull:
nullはそれからstrは空のポインタが間違っています~ここではisEmptyと「」の効果が同じように滴ることがわかりますね.またisEmptyのソースコードを見ました.
public boolean isEmpty() {
return count == 0;
}
つまりStringのテキスト数が0であればtrueを返し、「」のテキスト数は0です.以上のように、nullはメモリ領域が割り当てられていない「空」~isEmptyと引用符の2つの「空」がnullと対向(すなわちそれら!=null)しており、いずれも割り当てられたメモリである(PS:isEmptyと「」がどのように異なるかは不明であり、知っているパートナーはコメントをお願いします.ありがとうございます~)