Java class 装载机效率
Java class loader efficiency
我的问题可能微不足道,但经过一些研究后,我仍然对得到的答案不满意。
我的问题是使用第三方 class 是否比使用 java 核心 classes 或 java 库更有效。
据我所知 java 中 class 个加载器的调用顺序
- 系统class加载程序
- 扩展程序class加载程序
- Bootstrap class 装载机
使用第三方 jar(将由系统 class 加载程序加载)而不是使用内置 class 文件会不会更有效,例如假设我有一个庞大的系统需要多次排序,假设我打算使用的算法是合并排序,所以通常我会继续使用
Collections.sort()
但是如果我自己实现它并使用它以便我可以从第一个 class 加载器获取它不是更有效率吗?
第一个 class 加载器是内置 class 加载器,这就是为什么编写您的集合 class 并不简单。
类 只加载一次,因此加载后它们从哪里来对性能没有影响。即使是第一次,也不太可能有太大关系。
顺便说一句,系统(您的代码)class 加载器排在最后。
即使情况并非如此,内置 classes 也经常以 Java 代码中不明显的方式进行优化,您无法自己编写。即 JVM 只是用手工制作的本机代码替换了一些方法。 (称为内在函数)
我的问题可能微不足道,但经过一些研究后,我仍然对得到的答案不满意。 我的问题是使用第三方 class 是否比使用 java 核心 classes 或 java 库更有效。
据我所知 java 中 class 个加载器的调用顺序
- 系统class加载程序
- 扩展程序class加载程序
- Bootstrap class 装载机
使用第三方 jar(将由系统 class 加载程序加载)而不是使用内置 class 文件会不会更有效,例如假设我有一个庞大的系统需要多次排序,假设我打算使用的算法是合并排序,所以通常我会继续使用
Collections.sort()
但是如果我自己实现它并使用它以便我可以从第一个 class 加载器获取它不是更有效率吗?
第一个 class 加载器是内置 class 加载器,这就是为什么编写您的集合 class 并不简单。
类 只加载一次,因此加载后它们从哪里来对性能没有影响。即使是第一次,也不太可能有太大关系。
顺便说一句,系统(您的代码)class 加载器排在最后。
即使情况并非如此,内置 classes 也经常以 Java 代码中不明显的方式进行优化,您无法自己编写。即 JVM 只是用手工制作的本机代码替换了一些方法。 (称为内在函数)