为什么Java要求char变量用单引号而不是double来封装其中的任何内容?一个例子:
char s = 's'; //This will not break
VS
char s = "s"; //This will break
我理解双引号主要是针对字符串的,但是有一个特定的原因可以解释为什么字符只能使用单引号并在输入双引号时中断?
我曾尝试做一些研究,但唯一相关的是另一个SO Question,它指的是单引号和双引号之间的区别,而不是char的语法开发背后的推理。
答案 0 :(得分:21)
因为char
和String
是两种不同的类型,所以Java应该知道你是否想要一个长度为1的字符或字符串?
例如,给定方法:
public void foo(String s) { }
public void foo(char c) { }
和电话
foo("a");
如果字符可以用双引号制作,那么Java如何知道要调用哪种方法?
答案 1 :(得分:2)
这是一个习惯于现代简易脚本语言的人所写的问题,其目标是使编程易于学习和快速输入。
Java是一种语言,适合知道CPU在底层工作的人。在低级语言(assemblyy,C,Java等)的世界中,字符是整数(UTF可能需要多个int),而字符串是整数数组。通过允许程序员定义确切的变量类型,Java允许您编写更有效的代码。
但它也允许你写String s =“s”;如果你不关心效率。