- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如 javase 7 文档所述
The ClassLoader class uses a delegation model to search for classes and resources. Each instance of ClassLoader has an associated parent class loader. When requested to find a class or resource, a ClassLoader instance will delegate the search for the class or resource to its parent class loader before attempting to find the class or resource itself.
为什么 ClassLoader 将类或资源的搜索委托(delegate)给它的父类?这样做的目的或好处是什么?
最佳答案
类加载委托(delegate)有几个正当理由。我根据他们的优先级列出了他们(根据我的理解):
安全
Java 中的某些类不应被混淆。通过父优先委派模型,JVM 可以确保它只执行那些类,而不是自定义类加载器加载的类。
避免重复的类实例
类加载是一项代价高昂的操作,因为它需要从外部存储或网络读取数据、解析字节码、分配内存等。所以限制 JVM 只加载一次类是原因之一。通过使用父优先规则形成类加载器层次结构将实现这一点。
类范围
有些类是Java 的核心部分,例如java.lang.*
。这些类是Java语言的一部分,几乎所有地方都会用到。由于类由其完全限定名称以及加载该类的类加载器唯一标识,因此使用单个类加载器来加载此类类非常重要。因此, Bootstrap 和扩展类加载器会处理这个问题。此外,通过在顶层加载类和资源,比在类加载器层次结构的底部加载更广泛的范围。
关于java - 为什么在java中加载类时委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41643204/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!