ในแง่ของการวัดประสิทธิภาพหากคุณกำลังพิจารณาประสิทธิภาพของเวลาดังนั้นInteger.toString (i); แพงถ้าคุณโทรน้อยกว่า 100 ล้านครั้ง มิฉะนั้นจะเป็นการโทรมากกว่า 100 ล้านครั้งดังนั้นInteger (10) .toString () ใหม่จะทำงานได้ดีขึ้น
ด้านล่างเป็นรหัสผ่านคุณสามารถลองวัดประสิทธิภาพได้
public static void main(String args[]) {
int MAX_ITERATION = 10000000;
long starttime = System.currentTimeMillis();
for (int i = 0; i < MAX_ITERATION; ++i) {
String s = Integer.toString(10);
}
long endtime = System.currentTimeMillis();
System.out.println("diff1: " + (endtime-starttime));
starttime = System.currentTimeMillis();
for (int i = 0; i < MAX_ITERATION; ++i) {
String s1 = new Integer(10).toString();
}
endtime = System.currentTimeMillis();
System.out.println("diff2: " + (endtime-starttime));
}
ในแง่ของความจำ
ใหม่จำนวนเต็ม (i) .toString ();
จะใช้หน่วยความจำมากขึ้นเนื่องจากจะสร้างวัตถุในแต่ละครั้งดังนั้นการกระจายตัวของหน่วยความจำจะเกิดขึ้น
"" + 42
แต่เฮ้นั่นคือฉัน แบบฟอร์ม # 2 จะส่งผลให้วัตถุจำนวนเต็มใหม่ (สำหรับค่าส่วนใหญ่ของ i) เป็นสื่อกลาง นอกจากนี้ยังมีการพิมพ์มากขึ้น