我有一个结果集,其中包含证券交易所和国家/地区的列表,它们所在的国家/地区。尽管如此,在我的数据库中,并非每个 Cxchange 都有country_id,因此在创建 Exchange 对象时,它们中的一堆具有 country_id 和 country_title null 值。由于内存优化,我计划实习所有重复的字符串(国家、货币等(,但注意到,我得到了一个 NullPointerException,这是逻辑的。是否有一些解决方法,如何避免与实习生重复字符串并且也得不到 NPE?谢谢。
一些选项是:
鉴于只有不到 200 个国家/地区,并且少于那么多交易所(全球只有 60 家主要交易所(,向您的交易所提供缺失的数据是微不足道的。
以编程方式(在 java 中或通过查询(提供默认值,例如,将0
分配给country_id
,并在数据库中null
country_title时""
。
不要费心实习 - 由于字符串如此之少,这样的微观优化不会产生可衡量的效果。
谢谢你们,应用程序中使用了更多字符串,国家和交易所只是一个例子。总共有大约 500k 个字符串,其中 50k 个是唯一的,即大约 30mb 被浪费了。确实没什么大不了的。
经过一些研究,我不会实习字符串,因为该应用程序应该在设备齐全的PC上运行:)