Java代碼的優化方法有哪些

2020-12-23 雲南北大青鳥

說到代碼優化,每個人或多或少都掌握一到兩種方法,但是這樣的方法對提升代碼運行效率效果不大,最重要是對代碼的重視和了解,這樣才能提升代碼的運行效率。在進行代碼優化的過程中,方法是非常重要的,多掌握幾種方法,根據代碼的不同情況選擇適合的方法進行優化。下面小編為大家介紹Java代碼優化的幾種方法。

1、使用指定類、方法的final修飾符

具有final修飾符的類不可派生。在Java核心API中,有許多最終應用程式的例子,例如java.lang.String,整個類都是final。為類指定final修飾符允許繼承類,並且為方法指定final修飾符允許覆蓋該方法。如果將類指定為final,該類的所有方法都是final。 Java編譯器將尋找內聯所有最終方法的機會。內聯對於提高Java操作的效率非常重要。這可以將性能平均提高50%。

2、重用對象

String對象的使用是非常重要的,StringBuilder / StringBuffer並不是字符串連接。由於Java虛擬機需要時間來生成對象,所以將來垃圾收集和處理這些對象可能需要一些時間。因此,生成太多對象將對程序的性能產生很大影響。

3、使用局部變量

調用方法時傳遞的參數以及在調用中創建的臨時變量都保存在堆棧中,速度更快。其他變量(如靜態變量和實例變量)在堆中創建並且速度較慢。此外,在堆棧中創建的變量,當方法完成運行時,內容消失,不需要進行額外的垃圾收集。

4、及時關閉流

在Java編程過程中,在執行資料庫連接和I / O流操作時要小心。使用後,應及時關閉以釋放資源。因為這些大型物體的操作會導致系統的大量開銷,稍微粗心會導致嚴重的後果。

相關焦點

  • 網站編程錦上添花 分享8個常用代碼優化小助手
    而代碼又是編程的主要途徑。代碼優化是通過對程序代碼進行等價變化,而不改變程序的運行結果。常用的代碼優化技術有刪除多餘運算,循環不變代碼外提,強度削弱等。下面,IDC評述網與大家分享8個代碼優化小助手,供參考。1. JalopyJalopy是一個 Java 原始碼格式化工具,它可以使用一套可配置的布局規則修改 Java 原始碼的布局。2.
  • JAVA並發編程:並發問題的根源及主要解決方法
    比如java中簡單的一條語句count += 1。映射到CPU指令有三條,讀取count變量指令,變量加1指令,變量寫回指令。雖然在高級語言(java)看來它就是一條指令,但實際上卻是三條CPU指令,並且這三條指令的原子性無法保證。也就是說,可能在執行到任意一條指令的時候被打斷,CPU被其他線程搶佔了。
  • Java之File類的構造方法
    >File f1=new File("c:\\Users\\java\\code\\a.text");System.out.println(f1);//重寫了Object類的toString方法,列印的是一個路徑:c:\Users\java\code\a.text
  • 零基礎java入門教程function函數應用菜鳥與大師僅一個代碼的差距
    如果都寫在這樣代碼的可讀性能非常差;也不方便後期代碼的復用性。其實認識了java這麼久,我們基本可以明白主函數的主要功能便是調用函數。如何定義一個函數?明確兩點:1:既然函數是一個獨立的功能,那麼該功能的運算結果是什麼先明確!
  • 4.Java基礎知識-HelloWorld
    4.1 執行流程4.2 編寫代碼步驟首先定義一個類public class 類名在類定義後加上一對大括號{}在大括號中間添加一個主(main)方法/函數public static voidmain(String [] args){ }在主方法的大括號中間添加一行輸出語句System.out.println(「HelloWorld」);4.3 案例代碼一public class HelloWorld {public static void main(String[] args) {System.out.println
  • 各大網站力推Java代碼優化:77案例+28技巧
    然而Java體系龐大、技術精深,如何寫出優質代碼,如何設計與優化系統架構,是高級開發者必須掌握的核心技術之一。一款軟體的最終體現就是代碼,而作為軟體架構師,如果沒有代碼優化的意識與技術,就不能稱之為軟體架構師。任何合格的軟體架構師,必須對代碼優化的概念與技術爛熟於胸,信手拈來。一個連代碼質量都不能控制好的架構師所設計的架構是不會有人信任的。
  • Java實現冒泡排序算法
    但是我有兩個困惑:1.如何著手學習呢?2.有哪些內容要學習呢?學習方法推薦:#學習方法1.從基礎開始,系統化學習2.多動手,每一種數據結構與算法,都自己用代碼實現出來3.思路更重要:理解實現思想,不要背代碼4.與日常開發結合,對應應用場景
  • 零基礎學java,常見的誤區和解決方法
    寫一篇經驗分享的文章,現在很多人學習java 第一,覺得java很難, 第二,覺得java 找工作不好找, 第三,也有人說java飽和了, 現在確實是行業的要求越來越高了, 早在07年的時候把
  • Java高級開發必會的50個性能優化的細節(珍藏版)
    在JAVA核心API中,有許多應用final的例子,例如java、lang、String,為String類指定final防止了使用者覆蓋length()方法。另外,如果一個類是final的,則該類所有方法都是final的。java編譯器會尋找機會內聯(inline)所有的final方法(這和具體的編譯器實現有關),此舉能夠使性能平均提高50%。
  • 別在Java 代碼裡亂打日誌了,這才是正確的打日誌姿勢!
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫使用slf4j使用門面模式的日誌框架,有利於維護和各個類的日誌處理方式統一。業務異常的記錄,比如:當接口拋出業務異常時,應該記錄此異常INFO:基本概念系統運行信息Service方法中對於系統
  • 給Java新手的一些建議——Java知識點歸納(Java基礎部分)
    有繼承:處理靜態動作, 分配內存空間, 變量定義為初始值 , 從基類->子類, 處理定義處的初始化, 執行構造方法需要注意的點:靜態屬性等從基類->子類進行初始化默認無參構造方法相關的特性5.
  • 如何學習Java,哪裡開始學Java比較好?
    當然是從基礎開始學習咯,學習需要循序漸進  新手前期主要是安裝開發工具,基本入手步驟:  開發環境搭建,安裝JDK  安裝開發工具 - eclipse  買書籍或者看電子書:學習Java有哪些值得推薦的Java書籍?
  • 零基礎學習初識Java筆記
    java -version 檢測jdk版本的開發java:1.新建文本文檔2.編寫java代碼3.更改文件後綴名為 .java4.按Windows+Rprint 列印 輸出注意:一個java文件,編譯後有幾個class文件?答案:不固定,有幾個class,就會生成幾個。
  • Java 代碼精簡之道
    ,更突出了原有匿名內部類中真正有用的那部分代碼。精簡:importstatic java.lang.Math.PI;importstatic java.lang.Math.pow;importstatic java.util.stream.Collectors.toList;List
  • 為什麼要學習Java開發 學Java有什麼優勢?
    學習Java開發有哪些優勢?Java應用非常廣泛,為此很多小夥伴選擇學習Java開發,有些零基礎學習Java開發,有些應屆生選擇學習Java開發,為什麼轉行Java的小夥伴越來越多呢?每天有各種層出不窮的新產品、新思路、新方法、新創意呼嘯著來到你面前。如果你有一個開放的心態,願意去了解和探究這些新鮮事物,你會永遠保有自己的好奇心,永遠有一顆年輕的心態。IT行業的目標是創造出原本沒有的功能或者一個世界,這些創造能讓你有不同與其它行業的成就感。
  • 「Java」基礎06:編寫入門程序
    新建一個記事本,命名為HelloWorld,再將後綴名.txt改變成.java。用記事本打開HelloWorld.java文件,代碼如下:這樣寫完,HelloWorld程序原始碼就編寫好了。二、編譯.java文件是開發人員編寫的原始碼,java程序是在JVM上運行的,但是JVM並不認識.java文件。這個時候就必須要將源文件編譯成JVM能看懂的字節碼文件(.class文件)。
  • java生成隨機數的五種方法
    當第一次調用 Math.random() 方法時,自動創建了一個偽隨機數生成器,實際上用的是 new java.util.Random()。當接下來繼續調用 Math.random() 方法時,就會使用這個新的偽隨機數生成器。
  • Java之final關鍵字詳解
    b. final類中的成員方法都會被隱式的指定為final方法。說明:在自己設計一個類的時候,要想好這個類將來是否會被繼承,如果可以被繼承,則該類不能使用fianl修飾,在這裡呢,一般來說工具類我們往往都會設計成為一個fianl類。在JDK中,被設計為final類的有String、System等。代碼:2.
  • 菜鳥如何學java?
    Java 作為一個 20 年的老牌程式語言,依然在眾多程式語言中有著舉足輕重的地位,好多人看到別人轉行學java當上工程師,拿著上萬的月薪,內心早已蠢蠢欲動。憑啥他可以拿這麼多的工資,我就得每月三四千,日子過得緊巴巴的?我也想拿呀,那你要去學啊?難題來了,大部分同學都是零基礎。
  • Java面向對象的基本概念,一定要牢記
    java需求變更:面向過程:又買了豬肉,修改代碼,才能放入冰箱面向對象:豬肉實體已經買了,無需修改代碼,就把豬肉放入冰箱即可定義類java支持一個java源文件中定義多個類GC垃圾回收器如果堆內存中的對象沒有任何變量指向該對象,那麼程序將無法再訪問該對象,java對其有專門的信息記錄和維護是否其被引用。如果該對象沒有被引用,它就變成了垃圾,java的垃圾回收器GC將定時自動回收該對象,並且釋放該對象所佔的內存區。