Recherche

Coder's IO

Tag

Bytecode

Mieux comprendre le bytecode de Java

 

+Yohan Beschi  développeur et expert chez Soat, présentera le 24 septembre prochain une soirée autour du bytecode de Java.

Cette soirée permettra de répondre aux questions suivantes : 
– Comment fonctionne le bytecode Java ?
– Comment la JVM fonctionne ?

Yohann proposera une introduction au fonctionnement de la JVM et s'intéressera aux bases du bytecode de Java. L'approche se fera au travers d'exemples concrets.

La soirée se découpera en deux parties : 
1- La JVM et le bytecode
2- La structure d'un fichier .class

Cet événement est gratuit, il nécessite un niveau intermédiaire pour suivre la soirée dans de bonnes conditions.

#java #bytecode #jvm

Ubiquity framework

 

Ubiquity est un outil permettant d’effectuer des copies d’objets vers d’autres objets. Pour être plus précis, le framework permet, à la manière d’un adaptateur, de transformer un type d’objet en un autre.
Il a été développé par +Francois Laroche 

Vous me direz, il existe déjà pas mal d’outils pour effectuer ce genre de tâche. Ce n'est pas faux. Néanmoins, lorsque les autres outils se basent sur la réflexion, Ubiquity présente une autre façon de mettre en oeuvre le mapping.

Ubiquity va parser le bytecode et générer à la volée le code nécessaire à la copie d’objet à objet.

Cette technique permet de battre des records de performance et de se trouver 20 fois plus rapide que Dozer.

Le copieur effectue une copie récursive en profondeur.

Pour son fonctionnement, l’outil ne requiert qu’une seule dépendance à l’api ASM.
Sa mise en oeuvre se résume en 3 lignes de code :

ubiquity ubiquity = new Ubiquity();
MyObject1 myObject1 = new MyOject1();
// Populate and have fun with your objet
MyObject2 myObject2 = ubiquity.Map(myObject1, MyObject 2.class);

Face à des cas plus complexes, le framework fournit des points d’entrée permettant de traiter des cas particuliers.

Il supporte les collections standard du JDK avec la possibilité de fournir l’implémentation d’un factory ( CollectionFactory ) en cas de traitement spécifique.
Ubiquity fournit également un jeu d’annotations utilitaires.
Cet outil se focalise sur une tâche, la copie d’objet à objet, et il le fait très bien (et ceci sans étape déclarative).

Le code est hébergé sur Github.

Vu la simplicité de mise en oeuvre, aucune excuse pour ne pas l’essayer 🙂

#java #bytecode #map #ubiquity

Ouvrez le capot de votre JVM

 

Avez-vous déjà été regarder du côté du bytecode ? Une des raisons pour laquelle vous ne l’avez jamais fait, c’est que lire et comprendre cette syntaxe n’est pas toujours trivial.
Une autre raison est que pour une grande part des développeurs Java, cela reste complètement transparent.
Je pense que la compréhension de la mécanique interne est une bonne chose.
Je suis récemment tombé sur cet article qui donne les éléments permettant d’appréhender le bytecode.

L’article que vous trouverez attaché à ce post est le premier d’une série d’articles.
Le sujet est vraiment bien détaillé et l’on y retrouve des exemples très clairs.

Pour tous ceux qui souhaitent découvrir ou approfondir ces connaissances sur les rouages du bytecode en Java, cet article est pour vous !

#java #bytecode #jvm

Créez un site Web ou un blog gratuitement sur WordPress.com.

Retour en haut ↑

Concevoir un site comme celui-ci avec WordPress.com
Commencer