{"id":1214,"date":"2023-06-30T15:44:13","date_gmt":"2023-06-30T13:44:13","guid":{"rendered":"https:\/\/bitcamp.it\/blog\/?p=1214"},"modified":"2023-06-30T15:44:15","modified_gmt":"2023-06-30T13:44:15","slug":"garbage-collection","status":"publish","type":"post","link":"https:\/\/bitcamp.it\/blog\/glossario\/garbage-collection\/","title":{"rendered":"Garbage Collection"},"content":{"rendered":"\n<p>La Garbage Collection \u00e8 il <strong>processo di recupero della memoria di runtime<\/strong> allocata ma inutilizzata che viene attuato mediante la distruzione degli oggetti inutilizzati.<\/p>\n\n\n\n<p>In linguaggi come C e C++, \u00e8 il programmatore a essere responsabile sia per la creazione che la distruzione degli oggetti. Se il programmatore dimentica di eliminare oggetti obsoleti, la memoria allocata per accoglierli <strong>non viene liberata<\/strong>. La memoria utilizzata continua a crescere fino a quando non rimane pi\u00f9 memoria da allocare e le applicazioni soffrono di <em>&#8220;memory leak\u201d<\/em>, ovvero di perdite di memoria.<br>Superata una certa soglia quindi non rimane pi\u00f9 memoria libera in quantit\u00e0 sufficiente per la creazione di nuovi oggetti e l&#8217;intero programma termina in modo anomalo.<br>Si possono utilizzare metodi come <strong><em>free() <\/em><\/strong>in C e <strong><em>delete()<\/em><\/strong> in C++ per eseguire esplicitamente la Garbage Collection.<br><br>In Java, la garbage collection avviene in <strong>modo automatico<\/strong> durante il ciclo di vita di un programma. Questa caratteristica elimina la necessit\u00e0 di de-allocare memoria e di conseguenza protegge dalle memory leak.<br>La Java Garbage Collection \u00e8 il processo attraverso il quale Java esegue la <strong>gestione automatica della memoria.<br><\/strong>In poche parole, garbage collector individua gli <strong>oggetti obsoleti<\/strong> non pi\u00f9 utilizzati per poi eliminarli liberando memoria.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La Garbage Collection \u00e8 il processo di recupero della memoria di runtime allocata ma inutilizzata.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[26],"class_list":["post-1214","post","type-post","status-publish","format-standard","hentry","category-glossario","tag-g"],"_links":{"self":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts\/1214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/comments?post=1214"}],"version-history":[{"count":1,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts\/1214\/revisions"}],"predecessor-version":[{"id":1215,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts\/1214\/revisions\/1215"}],"wp:attachment":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/media?parent=1214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/categories?post=1214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/tags?post=1214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}