java - 包装类,通过构造函数中的字符串参数创建对象时的功能差异?

标签 java string integer wrapper

就包装类的实例而言,当通过构造函数中的 String 参数创建实例时,与 int 相比,实例的行为是否有所不同,等。

例如,有什么区别:

Integer wrapperInt= new Integer(33);

Integer wrapperInt2= new Integer("33");

最佳答案

最终结果是相同的 - 您将得到一个值为 33Integer 对象。

如果无法解析输入字符串,则采用 String 的版本将抛出 NumberFormatException

注意:不需要编写像 IntegerwrapperInt = new Integer(33); 这样的语句。让编译器为您做这件事(自动装箱):

Integer wrapperInt = 33;

如果由于某种原因,您不想使用自动装箱,那么至少使用 Integer.valueOf(...) 而不是使用构造函数:

Integer wrapperInt = Integer.valueOf(33);

这样效率更高; valueOf 方法可以返回缓存的对象(因此无需创建新的 Integer 对象)。

关于java - 包装类,通过构造函数中的字符串参数创建对象时的功能差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22040508/

相关文章:

java - 防止浏览器在 gwt 中显示弹出窗口警告

java - PROGUARD:使用 keepInnerClass 标志是否会丢失有关其是否静态的信息

Python正则表达式提取字符串末尾的可选数字

java - 给定 int 的字符串表示,检查溢出

检查用户提供的值是否为整数,如果不要求正确的值

java - 在非 Spring 项目中运行 Spring Cloud Contract 测试

java - 在docker tomcat启动后运行命令

python - 从旧样式自动转换高级字符串格式化程序

java - 在字符串中逐字反转

java - 值的大小影响计算时间?