gpt4 book ai didi

Java - 下划线

转载 作者:搜寻专家 更新时间:2023-11-01 02:10:08 31 4
gpt4 key购买 nike

不知道它是否重复(无法找到要搜索的词,例如 “允许使用 java 字符”)。我在测试面试中遇到了这个问题:


考虑以下类:

class _ {_ f; _(){}_(_ f){_ t = f; f = t;}_(_ f, _ g){}}
  1. 这个可以编译吗?
  2. 如果是,这段代码是做什么的?

所以我的回答是否定的,但我错了。有人可以解释一下这是如何编译的吗? (我在我的 IDE 上试了一下,我很惊讶它编译得很好)

最佳答案

就标识符而言,下划线字符就像 Java 中的字母一样对待。 JLS, Section 3.8涵盖标识符可以包含的内容:

An identifier is an unlimited-length sequence of Java letters and Java digits, the first of which must be a Java letter.

The "Java letters" include uppercase and lowercase ASCII Latin letters A-Z (\u0041-\u005a), and a-z (\u0061-\u007a), and, for historical reasons, the ASCII underscore (_, or \u005f) and dollar sign ($, or \u0024). The $ character should be used only in mechanically generated source code or, rarely, to access pre-existing names on legacy systems.

所以这个编译。它定义了一个名为_的类,带有一个名为f的同类名_的成员变量。有 3 个构造函数——一个没有参数但什么都不做,一个有一个 _ 类型的 f 参数,一个有两个参数 f和类型为 _g 什么都不做。

第二个构造函数声明了一个 _ 类型的局部变量 t 并将参数 f 赋值给它,然后赋值 t 返回到 f(它不会触及实例变量 f)。

关于Java - 下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20340105/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com