空Java字符串的大小

Fra*_*ank 7 java string size primitive-types

我听到一位同事说如果我在Java类中删除一个String成员,即使String为空,我也会支付"24字节".那是准确的吗?Integer,Float,Double是一样的吗?(而不是int,float,double,每个只有4,4和8个字节).

Jon*_*eet 15

你要付4首或8个字节的参考.无论您愿意支付额外的对象按你的"容器"对象的实例取决于你如何让你的空字符串.例如,如果您使用文字,""那么所有实例都将引用同一个对象,因此您只需要为引用本身付费.

如果您为每个实例创建一个单独的空字符串,那么显然会占用更多内存.

  • @KumarVivekMitra这种征求真的不合适. (5认同)
  • @Frank:如果他真的在暗示这一点,我会对他说的任何其他事情有点怀疑...... (2认同)
  • Frank,我怀疑他是在暗示你所说的,因为 24 确实是你在典型的 64 位 HotSpot 上为“Object”的普通空实例支付的字节数。您为“Integer”支付相同的金额。 (2认同)