• [^] # Re: de quoi tu te plaint ?

    Posté par . En réponse au journal la Geste de l'Estudiant.. Évalué à 1.

    Allouer de la mémoire pour un objet est sans fondement : ce n'est plus la mémoire pour un objet qu'on alloue mais la mémoire pour une structure. Il sera alors à la charge du développeur de créer un système permettant d'utiliser cette structure comme si c'était un objet (j'en connais qui ont fait ça en assembleur). Et pour quelqu'un qui ne veut pas s'embêter avec du bas niveau, c'est totalement loupé.

    Ben ta jvm va decider de comment est organise l'objet (tres probablement comme une struct c + pointeur sur la class avec la table des methodes).

    Ensuite, ton code tourne contre cette structure et tu le vois pas, ton bytecode s'occupe de ca pour toi.
    Donc, oui, allouer revient a deplacer le pointeur de debut de heap disponible, retourner cette adresse ou exploser si la memoire est pleine.
    Il te reste effectivement le cas de le heap pleine, mais qui peut encore etre agrandie. Dans ce cas, ca va etre plus que 10 instructions, clairement, mais c'est un cas tres rare en pratique. Et surtout, c'est borne (-Xmx de la jvm), et ca peut meme s'eviter (-Xms egale a -Xmx, meme si c'est idiot de faire ca en pratique).

    If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.