@Test
public void method1() {
String a = String.valueOf('\u0000'); //控制台输出的是空格,\u0000 表示的是Unicode值
log.info("a的Unicode值:" + Integer.toHexString(a.charAt(0)));// \u0000
String b = " "; // 空格字符串
String c = ""; //空字符串
String d = null; //没有任何指向的字符串引用
String e = "null"; //null字符串,这个null是常量池里的
log.info(a + ";" + b + ";" +c + ";" + d + ";" + e + ";");
log.info("a.equals(c):" + a.equals(c)); // false
log.info("a.equals(b):" + a.equals(b)); // false
log.info("a == c:" + (a == c)); // false
log.info("a == d:" + (d == a)); // false
log.info("a.equals(e):" + a.equals(e)); // false
/*
总结:1. 我们知道,Character类定了最小值 MIN_VALUE = '\u0000',
这也是ASCII表的最小值,这样描述:空字符(NUL)
2. 虽然它转换为字符串输出为空格,但是它与空格、空字符串、NULL和"null"都不同,
所以无法找到能够描述它的符号
*/
}
如有理解的不对的地方,还请各位大神指正!
Unicode值与字符串比较
本文通过一个具体的单元测试方法,探讨了不同类型的空值(包括空格、空字符串、NULL引用及null字符串)与Unicode值u0000所代表的空字符之间的区别。文章展示了这些值在Java中如何进行比较,并解释了它们之间的差异。
36万+





