• JAVA,  Programmazione

    Come funziona la JVM

    Volevo segnalare questo interessante articolo dal titolo Understanding JVM Internals originariamente pubblicato sul blog Cubrid e riportato poi da DZone relativo al funzionamento della JVM vista “dall’interno”, perchè come dice l’autore: Non credo ci sia bisogno di conoscere il modo in cui JAVA è stato sviluppato per utilizzare bene JAVA. Moltissimi sviluppatori JAVA sviluppano grandi applicazioni e ottime librerie senza conoscere JAVA nel suo profondo. Tuttavia se si comprende come funziona la JVM si comprendere meglio anche JAVA.

  • JAVA,  Programmazione

    Caricare jars e classi Java dinamicamente

    Java fornisce una funzionalità in cui è possibile modificare le variabili di ambiente di sistema utilizzando l’oggetto System. Quindi non si può modificare il classpath e risolvere il problema? No! il problema sta proprio qui, il classloader di sistema viene inizializzato proprio all’inizio della sequenza di avvio e copia il in esso classpath. Quindi, non servirebbe modificare dinamicamente il classpath visto che il classloader di sistema avrebbe già letto il classpath “vecchio” e caricato le classi di conseguenza. C’è una soluzione a tutto cio?…. Sì! i class loaders … Ma prima entrare nel dettaglio, facciamo una veloce disamina dei class loaders. Il caricamento di una classe è gestito dai class loaders della JVM, il Bootstrap loader è il loader principale che carica tutte le classi Java di base durante la fase di avvio, come molti sviluppatori Java già sanno non ci sono passi separati di linking come avviene in altri linguaggi di programmazione (vedi linguaggio C). Quando…