【发布时间】:2011-04-18 11:53:12
【问题描述】:
当 JVM 加载类 A 时,它会加载 A 中使用的所有类吗?
而且我想知道导入声明是否对加载过程很重要?
JLS 的链接将不胜感激。
【问题讨论】:
标签: java classloader jls
当 JVM 加载类 A 时,它会加载 A 中使用的所有类吗?
而且我想知道导入声明是否对加载过程很重要?
JLS 的链接将不胜感激。
【问题讨论】:
标签: java classloader jls
导入和类加载无关。前者只是节省了输入:它允许您在代码中使用短类名而不是完全解析的类名。
类在第一次使用时由JVM 加载。
【讨论】:
import 只是帮助程序员。编译类文件时,变量的限定名称存储在 .class 文件中,因此 JVM 知道它需要加载什么。
http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#21410 第2.17.1节“虚拟机启动”
【讨论】:
导入类是用户和编译器的标志。使用 import 不会加载类。 JVM 仅在类被引用时才加载类,如果类不是必需的,则该类不会在编译时或运行时加载它。
【讨论】: