存在用于開發Java應用程序的技術,這些應用程序匹配甚至超過了使用更傳統地用于此目的的語言構建的應用程序的性能要求。然而,從延遲角度來看,即使這樣也不足以獲得最佳性能。Java應用程序仍然必須依賴操作系統來提供對底層硬件的訪問。通常,對延遲敏感(通常稱為“實時”)的應用程序在幾乎可以直接訪問底層硬件時運行得最好,這同樣適用于Java。想學習java的同學,建議考慮參加java培訓,進一步提升自己,給自己增值。
Java從一開始就被設計為可以在各種硬件和系統體系結構中以二進制級別進行移植。這是通過設計和實現一個虛擬機(一個執行平臺的抽象模型)來完成的,并讓它執行Java源編譯器的輸出。其論點是,轉移到不同類型的硬件平臺只需要移植虛擬機。應用程序和庫將在不進行修改的情況下工作。
然而,對延遲和性能有嚴格要求的應用程序通常要求在執行時盡可能接近硬件——它們希望從硬件中榨取盡可能多的性能,而不希望純粹為了可移植性或抽象編程概念(如動態內存管理)而出現的中間代碼礙事。
這些年來Java虛擬機已經發展成為一個非常復雜的執行平臺,可以在運行時從Java字節碼生成機器碼,并根據動態收集的指標優化代碼。這是C++等靜態編譯語言無法做到的,因為它們沒有所需的運行時信息。仔細選擇數據結構和算法可以最小化甚至消除對垃圾收集的需求——這可能是Java運行時環境中阻止一致延遲時間的最明顯的方面。在java培訓中,有很多框架的學習,還有實戰操作項目,讓你將學到的知識真正運用到實踐中去,掌握java知識和技能。
但歸根結底,Java虛擬機只是虛擬的,它需要運行在操作系統之上,以管理對硬件平臺的訪問。無論操作系統是Linux(可能是服務器端環境中使用最廣泛的)、Windows還是其他什么,問題仍然存在。
存在用于開發Java應用程序的技術,這些應用程序匹配甚至超過了使用更傳統地用于此目的的語言構建的應用程序的性能要求。然而,從延遲角度來看,即使這樣也不足以獲得最佳性能。Java應用程序仍然必須依賴操作系統來提供對底層硬件的訪問。通常,對延遲敏感(通常稱為“實時”)的應用程序在幾乎可以直接訪問底層硬件時運行得最好,這同樣適用于Java。想學習java的同學,建議考慮參加java培訓,進一步提升自己,給自己增值。
Java從一開始就被設計為可以在各種硬件和系統體系結構中以二進制級別進行移植。這是通過設計和實現一個虛擬機(一個執行平臺的抽象模型)來完成的,并讓它執行Java源編譯器的輸出。其論點是,轉移到不同類型的硬件平臺只需要移植虛擬機。應用程序和庫將在不進行修改的情況下工作。
然而,對延遲和性能有嚴格要求的應用程序通常要求在執行時盡可能接近硬件——它們希望從硬件中榨取盡可能多的性能,而不希望純粹為了可移植性或抽象編程概念(如動態內存管理)而出現的中間代碼礙事。
這些年來Java虛擬機已經發展成為一個非常復雜的執行平臺,可以在運行時從Java字節碼生成機器碼,并根據動態收集的指標優化代碼。這是C++等靜態編譯語言無法做到的,因為它們沒有所需的運行時信息。仔細選擇數據結構和算法可以最小化甚至消除對垃圾收集的需求——這可能是Java運行時環境中阻止一致延遲時間的最明顯的方面。在java培訓中,有很多框架的學習,還有實戰操作項目,讓你將學到的知識真正運用到實踐中去,掌握java知識和技能。
但歸根結底,Java虛擬機只是虛擬的,它需要運行在操作系統之上,以管理對硬件平臺的訪問。無論操作系統是Linux(可能是服務器端環境中使用最廣泛的)、Windows還是其他什么,問題仍然存在。