【问题标题】:Java class loader efficiencyJava 类加载器效率
【发布时间】:2016-10-08 13:40:54
【问题描述】:

我的问题可能微不足道,但经过一些研究后,我仍然对得到的答案不满意。 我的问题是使用第三方类是否比使用 java 核心类或 java 库更有效。

据我所知,java 中类加载器的调用顺序

  • 系统类加载器
  • 扩展类加载器
  • 引导类加载器

使用第三方 jar(将由系统类加载器加载)而不是使用内置类文件不是更有效吗,例如假设我有一个需要多次排序的庞大系统,然后让假设我打算使用的算法是合并排序,所以通常我会继续使用

                Collections.sort()

但是如果我自己实现它并使用它以便我可以从第一个类加载器中获取它,那不是更有效吗?

【问题讨论】:

    标签: java classloader


    【解决方案1】:

    第一个类加载器是内置的类加载器,这就是为什么编写你的 Collections 类并非易事。

    类只加载一次,因此加载后它们的来源与性能无关。即使是第一次,也不太重要。

    顺便说一句,系统(您的代码)类加载器排在最后。

    即使不是这种情况,内置类也经常以在 Java 代码中不明显的方式进行优化,并且您无法自己编写。即 JVM 只是用手工制作的本机代码替换了一些方法。 (称为内在函数)

    【讨论】:

    • 有道理,我注册了一门课程,老师说的第一件事是系统类加载器是第一个被调用的,这让我感到困惑,似乎不是这样。跨度>
    • “类只加载一次”他们兑现了吗?所以在运行时如果我在第一次加载类后删除一个 jar 文件不会出现问题?
    • @AmerQarabsa 如果 JAR 不需要其他类,是的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 2010-10-07
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多