Hello,欢迎来到程序员社区。 今天聊一聊 int Integer String 性能开销,希望对大家有所帮助。
Java面试手册PDF下载:[点击下载最全Java面试手册]编程电子书汇总(http://117.78.51.75/219-2)
针对int integer string的值比较堆内存的消耗,做一篇总结
public static void St编程电子书汇总ringTest(){
/**
* 获取时间
*/
Calendar Cld = Calendar.getInstance();
int YY = Cld.get(Calendar.YEAR) ;
int MM = Cld.get(Calendar.MONTH)+1;
int DD = Cld.get(Calendar.DATE);
int HH = Cld.get(Calendar.HOUR_OF_DAY);
int mm = Cld.get(Calendar.MINUTE);
int SS = Cld.get(Calendar.SECOND);
int MI = Cld.get(Calendar.MILLISECOND);
int a = 1;
int b = 1;
System.out.println(new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss:SSS").format(new DJava面试手册ate()));
for (int j = 0; j 10; j++) {
for (int i = 0; i 2147483647; i++) {
if(a==b){
//System.out.println(true);
}else{
//System.out.println(false);
}
}
}
System.out.println(new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss:SSS").format(new Date()));
}
2020/09/23-20:58:01:195
2020/09/23-20:58:01:205
时间开销:10
将上述
int a = 1;
int b = 1;
更换为
Integer a = 1;
Integer b = 1;
得到:
2020/09/23-20:59:02:105
2020/09/23-20:59:02:115
时间开销:10
将==更换为equals
2020/09/23-21:01:35:135
2020/09/23-21:01:35:145
时间开销:10
String a = "1";
String b = "1";
System.out.println(new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss:SSS").format(new Date()));
for (int j = 0; j 10; j++) {
编程电子书汇总 for (int i = 0; i 2147483647; i++) {
if((a==b)){
}else{
}
}
}
2020/09/23-21:03:17:354
2020/09/23-21:03:17:364
时间开销:10
String a = "1";
String b = "1";
System.out.println(new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss:SSS").format(new Date()));
for (int j = 0; j 10; j++) {
for (int i = 0; i 2147483647; i++) {
if((a.equals(b))){
}else{
}
}
}
2020/09/23-21:06:Java面试手册13:304
2020/09/23-21:06:20:832
时间开销:7.528
得到:
integer int string 使用==消耗差距不大,可以忽略不计,
integer使用equals消耗也很小,但是string相对integer消耗非常大.
> 时间不一定能证明很多东西,但是一定能看透很多东西。坚信自己的选择,不动摇,使劲跑,明天会更好。