在java中将整数转换为字符串的最快方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在java中将整数转换为字符串的最快方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2220字,纯文字阅读大概需要4分钟。
内容图文
![在java中将整数转换为字符串的最快方法](/upload/InfoBanner/zyjiaocheng/824/acd7c7f7f7bc4f5d82d888e8c0129ae9.jpg)
每次我必须将一个intin转换为一个字符串时,我选择了“”aor Integer.toString(a).现在我想知道哪种方式更快,所以我编写了一个简单的基准测试,调用function_1,function_2和function_3 10000000次并打印处理函数所需的时间.以下是功能:
public static String i="";
public static String j="";
public static String k="";
public static void function_1()
{
i=Integer.toString(getOne());
}
public static void function_2()
{
j=""+1;
}
public static void function_3()
{
j=""+getOne();
}
public static int getOne()
{
return 1;
}
输出是:
Benchmarking starting...
Executing function_1 10000000 time(s)...
Done executing function_1 in 476 ms.
Executing function_2 10000000 time(s)...
Done executing function_2 in 8 ms.
Executing function_3 10000000 time(s)...
Done executing function_3 in 634 ms.
Benchmarking complete!
我认为function_2是如此之快,因为它被编译为
public static void function_2()
{
j="1";
}
所以为了避免这种情况,我使用了函数getOne()代替.但这里是有趣的部分(对我来说):函数_3必须在不使用Object的原始toString方法的情况下进行编译(在本例中为Integer.toString(1),因为int是原始的).我的问题是:编译器如何实际威胁“”1,所以它比调用Integer.toString(1)慢?
解决方法:
“”和“1”在编译时是已知的.这就是为什么在转换为字节码时,function_2“”1真的被“1”取代.
getOne()结果在编译时是未知的,因此连接将在运行时完成.但是因为concatenation()效率不高,编译器可能会将此更改为基于StringBuilder.append()的实现.
不相信我?尝试:javap -c ClassName.class,你会看到这样的东西:
public static void function_2();
Code:
0: ldc #39 // String 1
2: putstatic #16 // Field j:Ljava/lang/String;
5: return
public static void function_3();
Code:
0: new #42 // class java/lang/StringBuilder
3: dup
4: invokespecial #44 // Method java/lang/StringBuilder."<init>":()V
7: invokestatic #28 // Method getOne:()I
10: invokevirtual #45 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
13: invokevirtual #49 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
16: putstatic #16 // Field j:Ljava/lang/String;
19: return
function_2()只有一个字符串“1”,而function_3有所有这些方法调用,里面有额外的StringBuilder
内容总结
以上是互联网集市为您收集整理的在java中将整数转换为字符串的最快方法全部内容,希望文章能够帮你解决在java中将整数转换为字符串的最快方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。