每个创建的类或仅一次将库导入/加载到内存中

问题描述

仍在学习基础知识,但我只是有一个关于库、类和内存的问题。

假设,假设我有 3 个班级。主、子和子子。

Main 创建多个子类,child 创建多个子子类。如果我在子子级中有一个导入库,它是为每个子子级创建的每个子子级多次加载库,还是只将其加载到内存中一次?我认为后者是理想和明智的做法,但你不能确定,所以我在这里试图解决这个问题。

在 Netbeans 中使用 Java。

解决方法

Main 创建多个子类

这是不正确的。或者至少,非常值得怀疑。在 Java 代码中创建新的涉及调用 someClassLoader.defineClass(byteCode),并拥有一个字节码生成器库。毫无疑问,这不是你所拥有的。

也许您的意思是:“我的 Main 类中的代码将实例化几个不同的类”。

如果我在子孩子中有一个导入库

这是误导。在 Java 中,import 并不意味着“获取此代码并运行它”。这是一个别名。 import java.io.File; 表示:“每当我在此源代码文件中提到简单标识符“文件”并且它处于需要类型的位置时,假设我打算改写“java.io.File””。

import 语句不运行任何代码,如果您导入一个类,而您在源文件中从未使用过,那么在生成的类文件中,此 import 语句绝对没有任何剩余。绝对没有任何区别。您不需要在运行时导入但从未使用过的类。

是否加载库

由于您对术语的困惑,我真的不知道您在问什么,但是无论您想添加多少警告,这个问题的答案总是:“最多一次”,除非有多个类加载器涉及(这是您必须明确编码的事情。类路径上的多个条目并不意味着“多个类加载器”。这只是意味着“将从磁盘上的多个位置加载的单个类加载器”。如果您明确添加一堆类加载器基础结构到您的应用程序,您会知道)。