在java開發中,代碼的執行效率和可讀性跟你所寫的代碼的嚴謹性密不可分,也同時跟你選擇的API有著千絲萬縷的關係,在java開發中,java基礎的熟練掌握和運用尤為重要,今天講一下java基礎在開發中的重要性.
例如1:
當你在進行判斷語句時,大多數開發者習慣性選擇if, else ,if else,而不去選擇swith_case,if條件使用範圍確實要比swith_case廣,但在有些情況下,二者都可以滿足你的選擇時,性能是有差別的,看下面的例子
方法1:
Integer a[]=new Integer[]{1,2,3};
if(a[1]==1){
//輸出
}else if(a[1]==2){
//輸出
}else if(a[1]==3){
//輸出
}else{
//輸出
}
方法2:
swith(a[1]){
case 1:
break;
case 2:
break;
case 3:
break;
}
總結: 方法1會把a[1],儲存在寄存器3次,而方法2只需要1次,這樣的話,方法1相對於方法2浪費了不必要的開銷。
例如2:在使用字符串時,如果需要字符串拼接,儘量不要使用+操作符號,如果字符串拼接的較多,這樣很危險,消耗大量內存,儘量使用StringBuilder
方法1:
String str=" ";
for(in i =0;i<100000;i++){
str+=a;
}
方法2:
StringBuilder sb=new StringBuilder();
for(in i =0;i<100000;i++){
sb.append("a")
}
總結:方法1產生1000000個字符串對象,每次拼接都會重新生成一個對象.極大的消耗內存,而stringBuilder只會產生一個,然後做字符串拼接.
例如3:
在循環內進行少使用new方法,創建對象引用
方法1 :
for(in t i=1;i<1000;i++){
object o=new object();//特別消耗內存
}
方法2:
Object o=null
for(in t i=1;i<1000;i++){
o=new Object();
}
總結:方法2中在內存中只會有一個object引用,大大節省內存空間
今天就說這麼多,或許不夠完善,或許會有失誤,如果存在問題,請多多指教,多多交流。