我只是想知道让Java自动装箱一个整数是否有区别:
Integer myInteger = 3; // This will call Integer.valueOf()
或者将您的代码
Integer myInteger = Integer.valueOf(3);
这个代码有没有可以优化的地方?我知道第二种写法更明确,但也意味着要多打一些字,除了这点之外还有什么区别吗?
我只是想知道让Java自动装箱一个整数是否有区别:
Integer myInteger = 3; // This will call Integer.valueOf()
或者将您的代码
Integer myInteger = Integer.valueOf(3);
这个代码有没有可以优化的地方?我知道第二种写法更明确,但也意味着要多打一些字,除了这点之外还有什么区别吗?
它们在内部无论如何都是相等的,因此请使用第一种变体。有可能,未来的编译器优化可能会使第一种变体更快。
a
和b
是字符串,String s = a + b;
将被编译器转换为String s = new StringBuilder(a).append(b).toString();
实际上,《Effective Java》的第51条建议正是因为这个原因而命名为“当心字符串连接的性能问题”...引用一句话,“道理很简单:除非性能无关紧要,否则不要使用字符串连接运算符来组合多个字符串。” - corsiKa