在我的Swing界面中第一次打开新的JInternalFrame需要一些时间。根据分析器,大部分时间都花在Classloader.loadClass()方法中。我知道它会在需要时动态加载类,实际上下次打开相同的帧时,它会快得多。
此应用程序有一个登录屏幕,然后是一个空桌面窗格的时间,然后用户打开其中一个内部框架。我认为,由于我有一些"停机时间",我可以使用它在后台预加载一些常见的类,这样当用户实际打开一个内部框架时,它会更快。
有没有办法实现这一点,除了必须生成一个完整的"虚拟指示符"通过我的面板并实际初始化这些类的实例?
理想情况下,如果它可以级联这样的加载,它会更好。有点像ant
中classfileset所做的工作答案 0 :(得分:4)
假设您没有对类加载器执行任何特殊操作,可以为要预加载的每个类调用Class.forName(String className)
。
这将在这些类中执行静态初始值设定项,因此它可能会影响程序的行为(尽管我认为任何此类程序都写得不好)。