我知道在Java中,有三种不同的方法可以将原始类型转换为相应的包装类。然而,如果性能是关键的话,是否有更好的方法呢?
Integer i = new Integer(5);
Integer i = 5;
Integer i = Integer.valueOf(5);发布于 2015-09-26 20:51:27
Integer.valueOf(int)的javadocs发出了非常明确的建议:
如果不需要一个新的
Integer实例,则通常应该优先使用该方法而不是构造函数IntegerInteger,因为该方法可能通过缓存频繁请求的值而产生更好的空间和时间性能。此方法将始终将值缓存在-128到127的范围内(包括在内),并可能缓存此范围以外的其他值。
正如Pshemo在注释中所指出的,并在此所以线中考虑到,Integer i = 5;实际上被自动转换为Integer i = Integer.valueOf(5);。因此,无论使用哪种方法,在性能上都不会有什么不同。
因此,如果性能是一个问题,只需避免使用new Integer(5)从缓存中获益。
https://stackoverflow.com/questions/32801762
复制相似问题