# Ram vs Disk
- ### 電腦中的記憶體(RAM) Main Memory 和硬碟 Disk or Drive 有什麼差別?
| 類型/比較 | 快取記憶體 (RAM)| 硬碟 (DISK/DRIVE)|
| -------- | -------- | -------- |
| 材料 | 半導體 | 磁性材料 |
| 儲存類型 | 揮發性記憶體 | 非揮發性儲存設備 |
|**關機會怎樣?** | 易失性存儲,資料會被清空 | 仍可被保存 |
| 用途 | 儲存當前正在執行的程式和資料 | 長期儲存系統、應用程式和使用者資料 |
| 讀寫速度 | **很快**,直接與 CPU 交換資料 | **普通**,需要過 I / O 控制器 |
| 容量 | **小** | **很大** |
| 價格 | **高** | **低** |
| 讀寫方式 | 電子狀態 | 物理磁頭 |
- ### 程式中什麼時候會使用到記憶體空間、什麼時候會使用到硬碟空間?
| 類型/比較 | 快取記憶體 (RAM)| 硬碟 (DISK/DRIVE)|
| -------- | -------- | -------- |
| 程式運行 | 讓 CPU 快速存取和執行程式指令 | 儲存資料,執行程式時給 RAM 處理 |
| 使用時機 | 需要儲存或操作資料時(例如:變數、陣列、物件等) | 儲存程式的原始程式碼和執行檔 |
| 使用時機 | 快取(緩存)和緩衝區 | 長期或永久性的資料儲存|
| 實例| 網路讀取資料、啟動程式 | 資料庫中的資料、使用者的文件和設定、操作系統、應用程式|
| **RAM** 不足時...| 會改用硬碟 | 模擬 RAM,稱為虛擬記憶體,但會很慢 |
- ### 程式中使用變數儲存一個整數 3 要使用多少記憶體空間?
#### 這取決於你的系統架構(32 位元或 64 位元)和你所使用的程式語言。
系統架構 ——
- 32 位元(4 位元組)
- 64 位元(8 位元組)記憶體(**已為主流**)
在 64 位元的系統中:
| 類型/比較 | Python| C / C++ | JavaScript|
| -------- | -------- | -------- | ------|
| 程式運行 | 28 位元組 | 4 位元組(32 位元) 、8 位元組(64 位元) **int ** | 8 位元組(64 位元) |
*通常會在 4 到 28 位元組之間*
JavaScript 並不直接操作記憶體,而是透過宿主環境(如瀏覽器或 Node.js)來管理記憶體。
在 JavaScript 中都按照 IEEE 754 標準來儲存:8 位元組。
數字物件可能會使用更多,如儲存物件類型。
實際的記憶體使用可能會更多,因為需要儲存額外的 meta 資訊。