java 中常見代碼調優和業務邏輯調優


之前公司領導說的程序員應該持用工匠精神,做爲一個程序員應該時刻的嚴格要求本身,對代碼精雕細琢,因此這片博客將會對我以往的code作出總結,總結java 代碼調優與程序員平常工做相關的代碼應該怎樣寫,若有不足歡迎指正,此篇博客會不斷更新java


(一)基本代碼調優

1.for遍歷操做的調優git

fori:經過下標訪問程序員

foreach:是經過容器的itrator的next() 方法迭代。github

迭代器:bash

三方面調優:ui

(1)fori 可預設設置 list 的大小 list.ensureCapacity(N); 提升添加新元 素的速度this

(2)遍歷時設置提早設置list.size(), for(int i = 0,size = list.size(); i < size ; i ++){}防止每次檢測大小,效率大大提升,對集合遍歷操做特別適用spa

(3)遍歷arrayList 最好用fori .迭代器訪問LinkedList 最好 ,由於LinkedList 進行隨機訪問時,只會進行一次列表訪問;對於foreach 須要作同步檢查,因此必然比fori 慢code

fori && foreach從源碼的角度分析ci

public E get(int index) { 
  
   if (index < 0 || index >= this.size) 
  
     throw new  IndexOutOfBoundsException(outOfBoundsMsg(index));
    
    if(ArrayList.this.modCount != this.modCount) 
    
    throw new   ConcurrentModificationException();
    
    return (E) ArrayList.this.elementData[offset + index]; 
    
  }
  
  public E next() {
  if (modCount != expectedModCount)
  throw new ConcurrentModificationException();
  int i = cursor; 
  if (i >= limit) throw new NoSuchElementException();
  Object[] elementData = ArrayList.this.elementData;
  if (i >= elementData.length)
  throw new ConcurrentModificationException(); cursor = i + 1;
  return (E) elementData[lastRet = i]; 
      
  }
  
複製代碼

實驗源碼地址

實驗結果以下:

tListFori = 629  //arrayList
    tListEeach = 784 // arrayList
    tListFori = 134932  //linkedList
    tLinkForeach = 500  //linkedList
    
複製代碼

(二)如何優雅的書寫你的業務代碼

相關文章
相關標籤/搜索