- BigInteger, BigDecimal (actually Number and it's derivatives) are now treated like primitives.  This is safe to do, because they are immutable and hence cannot be changed, yielding the same semantics if they had pointed to the same instance.  This is beneficial to the JSON file as it further reduces the number of @ref within the file. On the flipside it uses more memory, for example, if you had many BigDecimal's of 0, or 1 (common numbers), each would take up more memory.  The JsonReader may be modified in a future version to cache common instances of primitives (Numbers).