Ich verwende URLClassLoader zum Laden von Gläsern zur Laufzeit von einer Server-URL (sagen wir mal: http://jarsToBeLoaded/jars/
). Ich lade beispielsweise commons-collection.jar
, commons-httpclient.jar
und commons-io.jar
. Meine Frage ist: Diese Gläser werden heruntergeladen, sobald ich für jedes Glas addURL()
aufrufen oder sobald ich eine Klasse instanziiere, die in einem dieser Gläser (faul) verwendet wird?Verwendet URLClassLoader Lazy Loading?
Antwort
Von dem, was ich sagen kann, ist das Verhalten nicht angegeben, so hängt es von Ihrer JVM ab, wie die URLs behandelt werden. Ich habe den Code von Open JDK 8u40 durchgesehen. Für diese Implementierung gibt es kein Herunterladen von Jars, wenn addUrl()
aufgerufen wird. Der Anruf wird, für die sun.misc.URLClassPath
delegieren Sie die Implementierung here sehen: die Magie passieren wird mit Laden von Klassen aus dem Jar-Dateien All
public synchronized void addURL(URL url) {
if (closed)
return;
synchronized (urls) {
if (url == null || path.contains(url))
return;
urls.add(0, url);
path.add(url);
if (lookupCacheURLs != null) {
// The lookup cache is no longer valid, since getLookupCache()
// does not consider the newly added url.
disableAllLookupCaches();
}
}
}
wenn Sie versuchen, Ihre Klassen in diesen Gläsern zu laden, Ihre benutzerdefinierten Classloader verwenden, zum ersten Mal und java.net.URLClassLoader.findClass
wird aufgerufen werden. Ich bin mir nicht sicher, ob die Jars tatsächlich heruntergeladen und zwischengespeichert werden oder ob die JVM immer mit Netzwerkstreams arbeiten wird - der URLClassPath
Code ist nicht einfach zu folgen ...
- 1. Implizite Lazy Loading vs Explizite Lazy Loading
- 2. Lazy Loading vs Eager Loading
- 3. C# Ajax Lazy Loading
- 4. UITableView Lazy Loading Optimierung
- 5. Lazy Loading in NHibernate
- 6. JFreeChart & Lazy loading
- 7. Federdaten Hibernate Lazy Loading
- 8. Doktrin lazy loading
- 9. ASP.NET HoverMenuExtender Lazy Loading
- 10. Android listview lazy loading
- 11. Lazy Loading UICollectionView Bilder
- 12. lazy loading und $ ocLazyLoad
- 13. webpack 2 lazy loading
- 14. Lazy Loading with Ninject
- 15. Lazy loading Navigationseigenschaften
- 16. gwt lazy loading
- 17. jQuery Cycle Lazy Loading
- 18. Lazy loading, Deferred Laden, eifrig Loading LINQ
- 19. Schienen 3: Lazy Loading versus Eager Loading
- 20. Warum Hibernate @OneToOne und @ManyToOne verwendet Eager Loading und @OneToMany und @ManyToMany verwendet Lazy Loading?
- 21. Angular 2 Lazy Loading Techniken
- 22. Lazy Loading vermeiden Doctrine Symfony2
- 23. Lazy loading, Deferred Loading und Eager Loading im Entity-Framework
- 24. NSCollectionView lazy-loading-ähnliches Verhalten
- 25. Problem mit Lazy Loading-Implementierung
- 26. Lazy Loading Variablen in Vorlagen
- 27. Lazy Loading in Rails 3.2.6
- 28. Entity Framework Lazy Loading perfomance
- 29. Async Lazy Loading mit Aufgaben
- 30. Hibernate Lazy Loading wirft JsonMappingException