当前位置: 首页 > 面试题库 >

Java为什么要求char变量使用单引号?

岳鸿畴
2023-03-14
问题内容

为什么Java要求char变量用单引号而不是双引号将其中的任何内容括起来?一个例子:

char s = 's'; //This will not break

vs:

char s = "s"; //This will break

我知道双引号主要用于字符串,但是是否有特定原因说明为什么将chars构造为仅使用单引号并在输入双引号时中断?

我已经尝试进行一些研究,但是唯一相关的是另一个SO
Question,它是指单引号和双引号之间的差异,而不是char的句法开发背后的原因。


问题答案:

因为charString是两种不同的类型,Java还应该如何知道您是否想要长度为1的字符或字符串?

例如,给定方法:

public void foo(String s) { }
public void foo(char c) { }

和电话

foo("a");

如果字符可以用双引号引起来,那么Java将如何知道该调用哪种方法?



 类似资料:
  • 问题内容: 最近,我阅读了很多有关Unicode代码点的信息,以及它们随着时间的演变,并确保我也阅读了http://www.joelonsoftware.com/articles/Unicode.html。 但是我找不到真正的原因是Java为什么将UTF-16用作字符。 例如,如果我的字符串包含1024个ASCII范围的字母。这意味着等于2KB的字符串内存,它将以任何方式消耗。 因此,如果Java

  • 问题内容: 为什么说java中的静态变量尽量不要使用? 问题答案: 静态变量表示全局状态。这很难推理,也很难测试:如果创建对象的新实例,则可以在测试中推断其新状态。如果我使用的代码使用的是静态变量,则它可能处于任何状态-任何事情都可能对其进行修改。 我可以继续进行一段时间,但是要考虑的更大概念是,事物的范围越紧密,就越容易进行推理。我们善于思考小事情,但是如果没有模块化,就很难对一百万行系统的状态

  • 在《生锈的一生》一章中,有一个例子: 为什么他们使用

  • 问题内容: 在许多Java源代码中(例如),我看到了类似的东西; 我了解基本模式(锁定,最终解锁),但是我的问题是, 为什么在使用它之前先对本地作用域的Lock变量进行赋值? 为什么这样做而不是以下内容? 它会影响优化吗?第一个示例可以防止锁变粗吗? 评论后编辑 :如果您真的不知道为什么会出现这种情况,请不要添加答案。这是从Java来源获得的,@author标记是Doug Lea,所以我很确定它的

  • 假设一个函数有两个重载 然后在另一个函数的主体中 过载<代码>f(T 这让我非常惊讶。一个带有签名

  • 问题内容: 在托管bean中,是在常规Java对象构造函数之后调用的。 为什么要使用初始化而不是常规构造函数本身? 问题答案: 因为在调用构造函数时,bean尚未初始化-即没有注入依赖项。在该@PostConstruct方法中,bean已完全初始化,你可以使用依赖项。 因为这是保证可以在bean生命周期中仅调用一次此方法的协定。可能会发生(尽管不太可能)容器在其内部工作中多次实例化bean,但它保