gpt4 book ai didi

java - Java解释器和编译器规则冲突

转载 作者:行者123 更新时间:2023-12-02 10:43:00 25 4
gpt4 key购买 nike

我有一个“理论上的”问题,但这是为了了解java编译规则(或可能是解释器)背后的内容。

假设我们有以下代码:

class A {}

class B extends A {}

class X {
public B getValue(){return null;}
}

class Y extends X {
public A getValue(){return null;} //compilation error here
}

class Z {
public List<A> getAList(List<B> x) {return x;} //compilation error here
}

注意:我知道什么是语法错误以及如何修复它们。

我的问题是:
  • 如果我们“忽略”(理论上为)编译器错误,那么在运行时会发生什么?该语法错误意味着什么?
  • 为什么违反规则会导致运行时错误?
  • 最佳答案

    What could have happen in runtime if we would "ignore" (in theory) the compiler errors?

    编译器将Java代码转换为Byte代码,这只是一组指令。为此,它确实需要非常具体的规则来知道要做什么-例如关键字,方括号-语法。

    如果语法错误,它将不知道如何处理,因此无法对其进行转换。

    对于编译器,尝试使像这样的随机char序列的程序 oawpgapwo nap gunapoigu awpougn awpougn apowrgn pagn pawog poawng panbx与您认为“几乎是程序,但语法错误很少”的东西之间没有太大区别。

    关于java - Java解释器和编译器规则冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590255/

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