String = null和String.isEmpty之间有什么区别?

Dan*_*nny 12 java string null

使用if语句通过使用String = null或String.isEmpty()来检查字符串是否为空时有什么区别吗?

即:

public String name;

if(name == null)
{
    //do something
}
Run Code Online (Sandbox Code Playgroud)

要么

public String name;

if(name.isEmpty())
{
    //do something
}
Run Code Online (Sandbox Code Playgroud)

如果有任何不同(包括性能问题),请告诉我.

Mar*_*ers 39

空字符串是一个长度为零的字符串.null值根本没有字符串.

  • 如果s是空字符串,则表达式s == null将返回false.
  • NullPointerException如果字符串为null,则第二个版本将抛出一个.

这是一个显示差异的表格:

+-------+-----------+----------------------+
| s     | s == null | s.isEmpty()          |
+-------+-----------+----------------------+
| null  | true      | NullPointerException |
| ""    | false     | true                 |
| "foo" | false     | false                |
+-------+-----------+----------------------+
Run Code Online (Sandbox Code Playgroud)