freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

java編程思想第四版第五章初始化與清理(編輯修改稿)

2025-06-15 17:34 本頁面
 

【文章內容簡介】 收 C++的 析構函數( destructor) ⑴ 什么時候調用析構函數? ★ 當對象脫離其作用域時 (如對象所在的 函數已調用完畢),系統(tǒng)自動調用析構 函數 五、清理:終結處理和垃圾回收 ⑵ 析構函數的作用是什么? ★ 析構函數往往用來做 清理善后 的工作 ◆ 例如: 在建立對象時用 new開辟了一片 內存空間,應在退出前在析構函數中用 delete釋放 五、清理:終結處理和垃圾回收 ⑶ 是否每一個類都具有析構函數? ★ 如果用戶沒有編寫析構函數,編譯系統(tǒng) 會 自動生成一個缺省的析構函數 ,而它 也不進行任何操作 五、清理:終結處理和垃圾回收 垃圾回收器 的作用 ★ Java沒有析構函數 ★ 垃圾回收器 只知道 釋放那些 經由 new 關鍵字分配的內存 ★ 問題 1:是否存在 不經 new分配的內存 ? ◆ 如果不存在:上面一段話應該改為 垃圾回收器 能夠回收一切不再需要的內存 ◆ 如果存在:但 在 Java中 一切都是對象,而對象 必須經由 new關鍵字來分配內存 ◆ 答案:確實存在著不經 new分配的內存(利用 本地方法 調用非 Java代碼,如 C的 malloc函數) ★ 問題 2:垃圾回收器是否知道如何釋放這塊 特殊 的內存 ? ◆ 答案很顯然:不知道 ◆ 那么這塊特殊的內存如何釋放呢? Java允許在 類中定義一個 finalize()方法 ,可以通過調用 該方法來實現 ★ 問題 3:垃圾回收器是否等同于析構函數? ◆ 不等同(范圍不等同) ◆ 在 C++中, 每一個對象 一定會通過析構函數而 銷毀 ◆ 而垃圾回收器 只知道 回收經由 new分配的內存, 而其它的對象(不經 new分配的)不能被垃圾 回收器回收 五、清理:終結處理和垃圾回收 垃圾回收器是如何工作的? ★ 在堆上分配對象的代價十分高昂 ◆ 但由于垃圾回收器的存在, Java從堆 分配空間的速度,可以和其它語言從 堆棧分配空間的速度相媲美(了解) 六、成員初始化 Java編譯器將盡力保證: 所有變量 在 使用前都要進行恰當的初始化 ★ Java的變量有兩種: 引用變量 和 基本 類型變量 ,后者又分為下面兩種情況 六、成員初始化 ⑴ 非數據成員(方法中局部變量) ★ Java以 編譯時錯誤 的形式來保證其 初始化 ◆ 典例分析: ★ void f() { int i; i++; // Error, i not initialized } ◆ 強制程序員提供一個初始值 ◆ 編譯器可以為 i賦一個默認值,但是未初始化的 局部變量更有可能是程序員的疏忽, 所以采用 默認值反而會掩蓋這種失誤 六、成員初始化 ⑵ 數據成員為基本類型 ★ Ja
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1