如何步入Java行業 怎麼提高Java代碼運行效率

  如何步入Java行業?怎麼提高Java代碼運行效率?作為目前應用最廣泛的編程語言之一,Java吸引了大量的人學習加入。隨著互聯網業務量的增長以及技術的升級,我們發現Java程序的運行速度變慢了,如何才能提高Java代碼的運行效率呢?接下來就給大家分享幾個方法。

如何步入Java行業 怎麼提高Java代碼運行效率

  1、儘量指定類的final修飾符。帶有final修飾符的類是不可派生的,在Java核心API中,有許多應用final的例子,例如java.lang.String。為String類指定final防止了人們覆蓋length()方法。另外,如果指定一個類為final,則該類所有的方法都是final。Java編譯器會尋找機會內聯(inline)所有的final方法(這和具體的編譯器實現有關)。此舉能夠使性能平均提高50% 。

  2、儘量重用對象。特別是String對象的使用中,出現字符串連接情況時應用StringBuffer代替。由於系統不僅要花時間生成對象,以後可能還需花時間對這些對象進行垃圾回收和處理。因此,生成過多的對象將會給程序的性能帶來很大的影響。

  3、儘量使用局部變量。調用方法時傳遞的參數以及在調用中創建的臨時變量都保存在棧(Stack)中,速度較快。其他變量,如靜態變量、實例變量等,都在堆(Heap)中創建,速度較慢。另外,依賴於具體的編譯器/JVM,局部變量還可能得到進一步優化。

  4、不要重複初始化變量。默認情況下,調用類的構造函數時,Java會把變量初始化成確定的值:所有的對象被設置成null,整數變量(byte、short、int、long)設置成0,float和double變量設置成0.0,邏輯值設置成false。當一個類從另一個類派生時,這一點尤其應該注意,因為用new關鍵詞創建一個對象時,構造函數鏈中的所有構造函數都會被自動調用。

  5、在Java+Oracle的應用系統開發中,Java中內嵌的SQL語句儘量使用大寫的形式,以減輕oracle解析器的解析負擔。

  6、Java編程過程中,進行數據庫連接、I/O流操作時務必小心,在使用完畢後,即使關閉以釋放資源。因為對這些大對象的操作會造成系統大的開銷,稍有不慎會導致嚴重的後果。

  7、由於JVM的有其自身的GC機制,不需要程序開發者的過多考慮,從一定程度上減輕了開發者負擔,但同時也遺漏了隱患,過分的創建對象會消耗系統的大量內存,嚴重時會導致內存洩露,因此,保證過期對象的及時回收具有重要意義。JVM回收垃圾的條件是:對象不在被引用;然而,JVM的GC並非十分的機智,即使對象滿足了垃圾回收的條件也不一定會被立即回收。所以,建議我們在對象使用完畢,應手動置成null。

  8、在使用同步機制時,應儘量使用方法同步代替代碼塊同步。

  9、慎用異常

  異常對性能不利,拋出異常首先要創建一個新的對象。Throwable接口的構造函數調用名為fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法檢查堆棧,收集調用跟蹤信息。只要有異常被拋出,VM就必須調整調用堆棧,因為在處理過程中創建了一個新的對象。異常只能用於錯誤處理,不應該用來控制程序流程。

  10、及時清除不再需要的會話

  為了清除不再活動的會話,許多應用服務器都有默認的會話超時時間,一般為30分鐘。當應用服務器需要保存更多會話時,如果內存容量不足,操作系統會把部分內存數據轉移到磁盤,應用服務器也可能根據“最近最頻繁使用”(Most Recently Used)算法把部分不活躍的會話轉儲到磁盤,甚至可能拋出“內存不足”異常。在大規模系統中,串行化會話的代價是很昂貴的。當會話不再需要時,應當及時調用HttpSession.invalidate()方法清除會話,HttpSession.invalidate()方法通常可以在應用的退出頁面調用。

  當然,提升Java代碼運行效率的方法有很多,如果你想了解更多、更詳細的內容,可以選擇專業學習一下,讓自己儘快步入Java行業!


分享到:


相關文章: