優(yōu)惠活動(dòng) - 12周年慶本月新客福利
                                      優(yōu)惠活動(dòng) - 12周年慶本月新客福利
                                      優(yōu)惠活動(dòng) - 12周年慶本月新客福利

                                      Java特性的優(yōu)化

                                      Java語(yǔ)言本身也有很多優(yōu)化技巧可以使用,比較常用的如使用StringBuilder,優(yōu)化自定義hasCode( equals() toString()方法,優(yōu)先使用原始數據類(lèi)型,不在循環(huán)中使用try.catch, copy 時(shí)使用System.arraycopy)命令,除了這些通用技巧外,我們再介紹- 些優(yōu)化方法,分述如下。
                                       
                                      (1)減少編碼
                                       
                                      Java的編碼運行比較慢是Java的-大硬傷, 在很多場(chǎng)景下只要涉及字符串的操作(如輸人輸出操作、1O操作)都比較耗CPU資源,不管它是磁盤(pán)1O還是網(wǎng)絡(luò )I/O,因為都需要將字符轉換成字節,而這個(gè)轉換必須編碼。因此,減少編碼就可以大大提升性能。那么如何才能減少編碼呢?例如,在網(wǎng)頁(yè)輸出時(shí)可以直接進(jìn)行流輸出,即用resp. getOutpusStream0)寫(xiě)數據,把一些靜態(tài)的數據提前轉化成byte, 等到真正往外寫(xiě)的時(shí)候再直接用OutputStream(寫(xiě), 就可以減少靜態(tài)數據的編碼轉換。此外,很多存儲系統直接存儲成字節也是為了減少字符的編碼。


                                       
                                      (2)使用局部變量
                                       
                                      在很多情況下,程序員為了更方便地一次處理一個(gè)請求, 一般會(huì )創(chuàng )建一-堆對象,再把這些對象一直傳遞下去,直到請求執行完成,才會(huì )銷(xiāo)毀對象。這種操作會(huì )導致對象長(cháng)時(shí)間不能回收,降低內存的使用率,所以要鼓勵更多地使用局部變量。例如,調用方法時(shí)傳遞的參數以及在調用中創(chuàng )建的臨時(shí)變量都保存在棧中,這樣速度較快;其他變量像靜態(tài)變量、實(shí)例變量等,都在堆中創(chuàng )建速度較慢。棧中創(chuàng )建的變量,隨著(zhù)方法的運行結束,這些內容就沒(méi)有了也不需要額外的垃圾回收。
                                       
                                      (3)減少方法調用
                                       
                                      經(jīng)??吹揭恍┐a如ob.getXXX0,它的作用只不過(guò)是獲取某個(gè)變量對應的值,但是在一段代碼中卻需要多次調用一這種操作完 全沒(méi)有必要,可以把這個(gè)方法調用的返回結果用一個(gè)局部變量保存下來(lái),然后直接用這個(gè)局部變量就可以了,這樣能減少方法調用的次數(因為每一次方法調用JVM都要創(chuàng )建方法棧)。其他一些經(jīng)驗如下。
                                       
                                      ●把對象作為HashMap的key;
                                      ●web.xml配置版本信息可以減少啟動(dòng)時(shí)annotation 的掃描時(shí)間;
                                      Logger創(chuàng )建沒(méi)有使用static修飾符導致線(xiàn)程阻塞;
                                      ●少用Thread.getStackTraceO;
                                      網(wǎng)站建設正則運算盡量Cache。
                                      本文地址:http://www.havencoinwallet.com//article/4474.html
                                      相關(guān)文章:
                                      最新文章:
                                      国产免费丝袜调教视频爱剪辑|国产小受18asian|国产福利91精品一区二区三区|久久久青草大香|欧美丰满熟妇xxxx性