Utilizzo memoria in java

di il
3 risposte

Utilizzo memoria in java

Ciao a tutti,
volevo capire l'utilizzo della memoria.
Ho un json passato dal backend con 10 campi, di questi 10 io ne raccolgo 5 in un'oggetto e vedo che funzionato tutto, cioè niente crash. I 5 campi che non ho raccolto finiscono a caso nella memoria oppure non vengono scritti e basta? Posso avere in seguito un OutOfMemory?
Ho notato invece che nel caso contrario, cioè cerco più campi di quelli che mi arrivano invece va in crash.

3 Risposte

  • Re: Utilizzo memoria in java

    Ciao, per quanto riguarda la seconda domanda, ovvero quando tu provi ad accedere a campi che non esistono nel JSON, è abbastanza chiaro che ti vada in crash, in quanto tenti di accedere a dei dati che non esistono, quindi devi prevedere una gestione diversa. Ad esempio, se usi le librerie JSON del package "org.json.*" (cioè quelle presenti di default nell'sdk di android) hai a disposizione il metodo "has(...)" che ti permette di sapere se un certo JSON possiede o meno una determinata chiave.

    Per quanto riguarda la prima domanda, invece, non c'è una risposta univoca in quanto essa dipende dall'implementazione della specifica libreria JSON che utilizzi. Ad esempio, se usi la libreria GSON esistono delle annotazioni specifiche che ti permettono di non deserializzare determinati campi a tua scelta.
  • Re: Utilizzo memoria in java

    Io sto usando GSON, quindi dici che i campi che non deserializzo non vengono scritti in posti a caso della memoria?
  • Re: Utilizzo memoria in java

    No, se hai usato le opportune annotazioni previste da GSON. In ogni caso il test è semplice: prova ad accedere ad uno di quei campi e controlla che il valore sia "null" (o equivalente per i tipi di dato primitivi)
Devi accedere o registrarti per scrivere nel forum
3 risposte