gpt4 book ai didi

java - 静态类型是在编译时还是运行时强制执行的?

转载 作者:行者123 更新时间:2023-11-30 03:14:16 27 4
gpt4 key购买 nike

主要是问我主要熟悉的java/c++。

  • 类型信息是否仅在编译时用于检查正确性然后被丢弃? (即编译后 java 是否像 python 一样工作?)
  • 类型信息是否保留并再次用于运行时检查?
  • 这种行为是否因语言而异

最佳答案

在 Java 中,一些类型信息是在运行时保存的。这就是为什么你可以获得 java.lang.ClassCastException秒。不过,并非全部都是。特别是,Java 中的泛型是使用类型删除实现的,这意味着在运行时,一个 ArrayList<String>看起来像 ArrayList<Integer> (不过它看起来不像 HashSet<String> )。

在其他语言中,行为不同。例如,在 C 中,您可以在运行时做各种事情(例如,将指向字符串的指针复制到包含指向整数数组的指针的变量中)而不会出错,尽管是静态类型。

关于java - 静态类型是在编译时还是运行时强制执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57995970/

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