@TOC 这是unicode编码的表示方式
这是两个不同的东西
空字符:是一个不可见的字符,再控制台打印的时候它是不存在的,但是物理意义上是存在的。
ASCII
ASCII 编码表,中前三十个左右都是控制字符,控制字符的意思是可以实现一些控制,而不仅仅是表面人眼看到的字符的样子。
比如图中十进制10 表示换行。 请找到对应的行,我们来解读。
十进制->10
转移字符-> \n
字符含义->换行
public static void main(String[] args) throws Exception {
String name="张\n三";
String name2="张\012三";
System.out.println(name);
System.out.println(name2);
\n: v成功输出了换行
\012: 是八进制的表示方式,java会识别到这是ASCII的十进制->10进而找到\n,是一个意思
}
ASCII第一个控制字符就是0000
unicode 表示方式是:\u0000 八进制表示方式是\000 十六进制表示方式是\x00
\u0000和""
\u0000: 指的是空字符
“” : 表示空字符串
public static void main(String[] args) throws Exception {
String s = "a\u0000b";
System.out.println(s.length());//输出结果为3
}
- \u0000: 空字符是一个不可见的字符,但是它是实实在在存在的一个字符,或者你可以理解为隐藏字符。常见的字符串边界就是它
- 一个字节(byte)是由8个位(bit)组成的。因此,\u0000 在内存中占据的空间是一个字节,即8位(8bit)。
- ""表示真空,表示不存在
- \u0000 空字符,就叫空字符,它是一个真实存在的字符,真实存在的字符。只不过人眼不可见,但是计算机能识别到。