这种Java程序的行为是什么?为什么这不会给出编译时错误“不兼容类型无法将int转换为string”?

这种Java程序的行为是什么?为什么这不会给出编译时错误“不兼容类型无法将int转换为string”?,java,Java,为什么这不会导致编译时错误不兼容类型无法将int转换为string?为什么主方法有一维字符串数组,而没有其他类型的数组 public class Test1 { public static void main(String[] args) { String[] a = new String[3]; a[0] = "10"; a[1] = "20"; a[2] = "30"; for(String x : a

为什么这不会导致编译时错误
不兼容类型无法将int转换为string
?为什么主方法有一维字符串数组,而没有其他类型的数组

public class Test1 {
    public static void main(String[] args) {
        String[] a = new String[3];
        a[0] = "10";
        a[1] = "20";
        a[2] = "30";

        for(String x : a) {
            System.out.println(x);
        }
    }
}

他的问题是为什么这个给出错误

您已经创建了一个字符串数组,并且正在为其分配字符串,因此没有问题。仅仅因为这些字符串中有数字并不能阻止它们成为字符串

如果删除引号,则会出现错误。在下面的示例中,您将尝试将int放入字符串数组,但它不会编译

例如


我认为在发布关于基础知识的问题之前,你应该搜索更多(如果你至少搜索过的话)。我还建议您通过一些文档/书籍/任何详细介绍java工作原理的东西来学习java。这可能比简单的尝试要困难一些,但这就是你可以学习的方式。在谷歌上键入“不兼容的类型不能将int转换为字符串。”可能会让你找到答案。如果没有,读一些书/指南/文件肯定会。你认为这会发生在哪里?为什么?我看不出这段代码有任何错误,你能发布整个控制台输出吗?它没有给出错误,因为代码中唯一的int(新字符串[3]中的3)确实需要是int;不需要这样的转换。
    String[] a = new String[3];
    a[0] = 10;
    a[1] = 20;
    a[2] = 30;