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

为什么我们允许在Java中将char分配给int?

杜炫明
2023-03-14
问题内容

AsicII表:http://www.asciitable.com

下面的代码打印出相应字符的Dec值,例如“ 123”-> 49 50 51

 public void foo(String str)
        {
            for(int x = 0; x < str.length(); x++)
            {
                int temp = str.charAt(x);
                System.out.println(temp);
            }
        }

但是我注意到java是一种强类型语言,这意味着必须在编译时进行所有转换,但是代码如何知道如何以及何时将char转换为AsicII表中正确的Dec值呢?我弄乱了任何Java
/编程基础知识吗?


问题答案:

A char只是一个无符号的16位数字,因此,由于它基本上是该int类型的子集,因此JVM可以对其进行强制转换。



 类似资料:
  • 问题内容: 我从编译器收到的错误是“分配的左侧必须是变量”。我的用例是深度复制,但并没有实际意义。 在C ++中,可以分配给。 问题不在于如何规避对的分配。这很简单,但是决定不进行变量的背后是什么原理。 原因是技术上的还是概念上的? 到目前为止,我的猜测-用随机方法重建对象的可能性容易出错(概念上),但在技术上是可行的。 编辑 请避免使用“因为Java规范这么说”的变体。我想知道 这个决定 的 原

  • 问题内容: 我是Java或Selenium的新手。 我只需要帮助来了解一个基本问题。 为什么我们将firefoxdriver实例分配给WebDriver?WebDriver driver =新的FirefoxDriver() 我知道这是Java中的后期绑定,因为我们可以在以后的时间将IEDriver或其他实例分配给WebDriver。 问题1:但这适用于课堂,对吗? Question2:WebDr

  • 我是Java或Selenium的新手。 我只需要帮助理解一个基本问题。 为什么我们将Firefox驱动实例分配给WebDriver?WebDriver驱动程序=new FirefoxDriver() 我知道这是Java中的后期绑定,因为我们可以在稍后的时间点将IEDriver或其他实例分配给WebDriver。 问题1:但这适用于课堂,对吗? 问题2:WebDriver是一个接口,那么我们可以创建

  • 问题内容: 以下语句: 因错误而失败: 为什么在这里需要演员表? 我发现了几篇文章,解释了为什么您不能进行反向操作(将T分配给a),但这是显而易见的(可以理解)。 注意:我在Eclipse Luna下对此进行编码,所以我不知道这是Luna Quirk还是泛型中确实不了解的东西。 问题答案: 协方差vs协方差vs不变性 是 不变的 。 结果是, 是 不是一个亚型 的 在Java中,变量可以保存 相同

  • 问题内容: 对于中级Java程序员来说,这听起来太琐碎了。但是在审查Java基础知识的过程中,发现了一个问题: 为什么缩小转换范围,例如: 将被允许 会被编译器抱怨吗? 问题答案: 因为是常量的赋值。它的值在编译时是已知的,因此,如果常量值的赋值会导致溢出,则编译器可以/应该/会抱怨(尝试看看会发生什么。)。 将其分配给变量后,便要分配一个 表达式 的值,尽管它很可能是不变的,但编译器并不知道这一

  • 我只是在进行围棋之旅,我对指针和接口感到困惑。为什么这个Go代码不编译? 也就是说,如果是一个,为什么不是一个? 我收到的错误消息是: