Est-il quelque chose comme malloc/free en java?
Je n'ai jamais vu de telles déclarations, cependant,existe-t-elle dans le monde java à tous?
Vous devez vous connecter pour publier un commentaire.
Je n'ai jamais vu de telles déclarations, cependant,existe-t-elle dans le monde java à tous?
Vous devez vous connecter pour publier un commentaire.
De Java version de
malloc
estnew
-- il crée un nouvel objet du type spécifié.En Java, la mémoire est gérée pour vous, alors vous ne pouvez pas explicitement
delete
oufree
un objet.unsafe
mot-clé: msdn.microsoft.com/en-us/library/chfa2zb8(v=VS.100).aspx s'il vous Plaît noter que ce est très, très rarement nécessaire.Java a un garbage collector. C'est pourquoi vous ne verrez jamais de telles déclarations dans votre code(ce qui est bien si vous me demandez)
Pas directement équivalents existent en Java:
C
malloc
crée un non tas de nœud et vous renvoie un pointeur vers ce qui vous permet d'accéder à la mémoire autant que vous le souhaitez.Java n'est pas le concept d'un non objet, et ne vous permet pas d'accéder à la mémoire directement. Le plus proche que vous pouvez obtenir en Java pour
malloc
seraitnew byte[size]
, mais qui vous renvoie un objet fortement typé que vous ne pouvez l'utiliser comme un tableau d'octets.C
free
sorti un tas de nœud.Java ne permet pas de libérer explicitement les objets. Objet de libération de la mémoire en Java est totalement dans les mains du garbage collector. Dans certains cas, vous pouvez influencer le comportement de la GC; par exemple, en attribuant
null
à une variable de référence et de l'appel deSystem.gc()
. Toutefois, cela ne force pas l'objet à être libéré ... et est un moyen très coûteux de procéder.Si vous êtes à rien de bon (tm), je suppose que vous pouvez obtenir l'accès à de la mémoire brute si la JNI de l'interface. C'est là que vous pouvez appeler des programmes en C à partir de Programmes Java. Bien sûr, vous devez être en cours d'exécution dans un environnement où votre programme a les privilèges de le faire (un navigateur n'est normalement pas permettre cela, sauf si c'est suicidaire), mais vous pouvez accéder à des objets via C les pointeurs de cette façon.
Je me demande d'où la question d'origine est en venir. À un moment, il y a longtemps que j'ai été totalement sceptique sur l'idée que le C-style de gestion de la mémoire et de style C les pointeurs ne sont pas nécessaires, mais à ce point, je suis croyant.
new
au lieu demalloc
, garbage collector au lieu de gratuit.