我有一个股票交易所和国家的列表,他们居住的ResultSet。尽管如此,在我的数据库中,并不是每个Cxchange都有一个country_id,因此在创建Exchange对象时,它们中的许多都有country_id和country_title的空值。由于内存优化,我计划实例化所有重复的字符串(国家、货币等),但注意到,我得到了一个NullPointerException,它是逻辑的。是否有一些解决办法,如何避免重复的字符串与实习生,也不会得到一个NPE?谢谢。
发布于 2020-01-29 03:57:18
一些选项包括:
考虑到有不到200个国家,也不到那么多的交易所(全球只有60个主要交易所),向你的交易所提供缺失的数据是微不足道的。
以编程方式提供默认值,无论是在java中还是通过您的查询,例如,将0分配给country_id,将""分配给country_title,当它们在数据库中为null时。
不要费心去实习期了--这么少的字符串,这样的微优化不会有什么明显的效果。
发布于 2020-02-05 19:38:54
谢谢你们,这个应用程序中使用了更多的字符串,国家和交易所只是一个例子。总共有大约500k的字符串,其中50k是独一无二的,即大约30mb浪费。确实没什么大不了的。
经过一些研究,我不会实习生字符串,因为这个应用程序应该在配备良好的PC上运行:)
https://stackoverflow.com/questions/59955965
复制相似问题