os執行乙個程式時做了什麼

2021-06-28 18:07:05 字數 362 閱讀 8776

乙個程序開始執行時,os分給乙個程序分配一定大小的的記憶體,這個記憶體塊裡面又分為 code區, static/global區, stack區和heap區,總共4個區。其中的stack區總共就1mb的大小(不一定是1m,看作業系統和編譯器),不可改變,如果反覆的呼叫函式,超過了1mb的大小的話,那麼就stack overflow,程式就crash掉了。但是堆的話,可以隨便申請,堆區能grow,但是自己申請的memory,需要自己手動釋放掉。否則,浪費了記憶體,熟語叫記憶體洩露。

注意:程式執行時的堆區(segment),跟資料結構裡面講的堆,毛關係都沒有。堆區(segment)就是一塊免費取用記憶體segment的名詞而已。

但是,棧區(segment)確是資料結構裡面棧的一種實現。

new 乙個物件具體做了什麼

使用關鍵字new建立新例項物件經過了以下幾步 1 建立乙個新物件,如 var person 新物件的proto屬性指向建構函式的原型物件。2 將建構函式的作用域賦值給新物件。也所以this物件指向新物件 3 執行建構函式內部的 將屬性新增給person中的this物件。4 返回新物件person。p...

系統執行hello程式時,發生了什麼

include int mian 它被程式設計師建立,到系統上執行,輸出簡單的訊息,然後終止。資訊就是位 標記 上下文 1.源程式開始 程式設計師利用文字編輯器建立並儲存的文字檔案,檔名hello.c。源程式實際上是由值0和1組成位序列,8位一位元組,每個位元組表示文字中的乙個字元 ascii實際就...

只執行乙個程式

重複執行程式會造成系統資源的浪費 這句話真彆扭 很多情況 下我們把程式最小化或者隱藏起來,想用這個程式的時候會習慣的doulbeclick程式的圖示,wo 又乙個程式執行了,我們本意是既然已經是開啟的程式,你把程式再給我顯現出來不就可以了?弱智的程式設計師阿 不是說你,也不是說我,假想。常見的方法有...