代码之家  ›  专栏  ›  技术社区  ›  HbnKing

Java中类型转换的性能成本,如何选择?

  •  1
  • HbnKing  · 技术社区  · 6 年前

    在许多情况下,我们需要转换数据类型,但是在数字___和字符串之间有更多的转换方法。如何选择?他们有不同的表现吗?
    例子:
    将int转换为字符串

    int i=5;
    String s1=String.valueOf(i);
    String s2=i+"";
    String s3=Integer.toString(i);
    etc..
    

    将字符串转换为int

    String sint = "9999" ;
    int integer = Integer.valueOf(sint);
    int integer = Integer.parseInt(sint);
    int integer = Ints.tryParse(sint);
    
    int integer = NumberUtils.createInteger(sint);
    int integer = NumberUtils.toInt(sint);
    int integer = NumberUtils.createInteger(sint);
    etc..
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   Elliott Frisch    6 年前

    首选返回原语的版本。

    int integer = Integer.valueOf(sint); // unboxes Integer
    int integer = Integer.parseInt(sint); // returns int
    

    至于转换 int String 它们执行相同的操作(一个调用另一个,而JIT优化了其中的任何差异)。