先自問一個問題:C++有幾種new?

  我一直以為是兩種:operator new 和 placement new。剛剛查了下,原來是3種:還有一個是new operator。而且,我還弄錯了一個...但是,無論如何,我們能夠改變的只有兩個:

  1、operator new,分配內存。

  2、placement new,構造對象。

  而剩下的那個new operator很直白:負責調用上面兩個new。也就是其僅僅是語法層次上的東西,用來產生operator new和placement new的語義。

 

  這是一個不錯的開始,因為我要講的“內存管理”,其實是上面所提到的所有:內存分配和對象構造。當然,還有一個對稱的內存釋放和對象析構,這些自然也會有,只是相對來說前者更加直白和重要?;蛘?,我可以換一個題目:內存與對象管理技術。

  這將是一個,或者說數個相當大的話題;你不信,我可以給你一個列表(別眨眼):

  1、內存池,特別是一個可用的內存池,構建一個是相當困難的!其需要達到數個極其苛刻的要求:強悍的性能(否則我們還需要它?)、并發(fā)且線程安全(這點和上一點幾乎是矛盾的存在)、高可用性(意味著其有著合理的回收機制,否則可能會浪費大量內存;而且能夠處理相當畸形的環(huán)境,比如單一線程分配,單一線程回收)、可調試(簡直不可能!!!)。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式