作者roadeat (www)
看板CSSE
標題Re: [問題] Computer Architecture 的幾個名詞解釋
時間Fri Mar 25 23:50:08 2011
※ 引述《sean72 (.)》之銘言:
: 小弟最近有一次面試
: 裡面問了幾個名詞
: 由於我不是資訊工程背景出身 關於Computer Architecture的內容都是自修的
: 底子沒有很紮實
: 不過有幾個問題我不知道該如何找答案
: 另外由於這個面試的職位是韌體工程師 用C寫16位元系統的處理器
: 希望板上的高手能從這方面下手 指點迷津
: 下面有A. B. 兩大題
: =====
: A.
: 1. MEMORY SPACE
: 2. I/O SPACE
: 3. MEMORY HEAP
: 4. MEMORY STACK
(後文恕刪)
關於 3. MEMORY HEAP 和 4. MEMORY STACK
最近學"JAVA"有學到類似的概念分享給你 (不知道適不適用)
記憶體中 主要分成三塊 如下圖
┌──────┐
│ Global │
├───┬──┤
│Stack │Heap│
└───┴──┘
Global 主要是用來存放 "全域變數"
Stack 主要是用來存放 "基本型別變數" 或 "參考型別變數的參考值"
Heap 主要是用來存放 "參考型別變數的值"
例如 :
int a = 8;
這a = 8 都是存在Stack中
而 String b = "Happy";
這 "Happy" 則是存到Heap中
Stack的部分b所儲存的是 "Happy" 在Heap中的位置(稱參考值)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.6.94
1F:推 lmr3796:java配置的觀念可能不太適用在原PO提的地方吧? 03/26 13:09
2F:→ lmr3796:或者說這種配置東西是跟語言本身有關的 03/26 13:09
3F:→ lmr3796:例如以C來說是不是就沒有參考型別變數? 03/26 13:10
4F:→ roadeat:我也是在想好像跟C有點出入XD 03/26 16:17
5F:推 chchwy:把java參考想成c指標就通了 (雖然不完全等價) 03/27 00:37
6F:推 lmr3796:雖說如此,但java中的"參考型別變數"應該不在C裡頭 03/27 00:53
7F:→ lmr3796:常見的說法是不是比較像function內宣告的local變數會被放 03/27 00:54
8F:→ lmr3796:在stack frame,static和動態配置的部分會在heap? 03/27 00:55
9F:→ roadeat:我記得static的會放在Golbal捏 03/27 15:28
10F:推 chchwy:C語言用malloc來配置一個struct 不就是在heap裡嗎? 03/27 15:40