
【計】 null reference
empty; hollow; air; for nothing; vacancy
【計】 empty; null
【醫】 keno-
【經】 for nothing
join; refer
casue; cite; lead; leave; lure; make; quote; stretch
在計算機科學與編程領域,"空參引"(kōng cān yǐn)是"空引用"的簡稱,對應英文術語"Null Reference"。它指一個引用類型的變量尚未指向任何有效的對象實例,其值為 null
(或某些語言中的 nil
、None
等)。以下是詳細解釋:
未初始化的引用
當一個引用變量被聲明但未顯式賦值(或顯式賦值為 null
)時,它即成為空引用。例如在 Java 中:
String str; // 聲明但未初始化,默認為 null(取決于作用域)
String empty = null; // 顯式賦值為空引用
此時訪問 str.length
會觸發 NullPointerException
(空指針異常)。
對象缺失的占位符
null
表示引用變量當前不指向任何對象。這與空對象(如空字符串 ""
)不同——空對象是有效的實例,而 null
是徹底的引用缺失。
運行時錯誤根源
對空引用調用方法或訪問屬性會引發運行時異常(如 Java 的 NullPointerException
、C# 的 NullReferenceException
)。這是程式崩潰的常見原因之一。
設計缺陷的體現
Tony Hoare(null
的發明者)曾稱其為"十億美元的錯誤",因空引用導緻大量不可預見的程式故障。
防禦性編程
在訪問對象前顯式檢查 null
:
if (obj != null) {
obj.doSomething;
}
使用 Optional 模式
現代語言(如 Java 8+、Kotlin)提供 Optional
或可空類型(?
修飾符),強制開發者處理空值可能性:
val name: String? = null // 可空類型
name?.length // 安全調用,避免異常
空對象模式(Null Object Pattern)
返回一個實現相同接口的"無操作"對象,替代 null
值,減少條件判斷。
明确定義 null
為"引用類型的特殊字面量",表示無對象引用(JLS §4.1)。
"Null Reference: A reference that does not point to any object or data."(牛津大學出版社,2016)
将空引用歸類為"未定義行為"的典型誘因(IEEE Std 610.12-1990)。
參考文獻
“空參引”是一個計算機領域的專業術語,其含義和用法如下:
1. 基本定義
2. 常見場景與後果
NullPointerException
、C#的NullReferenceException
,可能導緻程式崩潰。3. 代碼示例
String str = null;
System.out.println(str.length()); // 觸發空參引異常
4. 解決方法
null
。Nullable<T>
)、Kotlin的非空類型設計。擴展補充
該術語在中文技術文檔中較少直接使用“空參引”,更多采用“空引用”或“空指針”等表述。其核心概念與英文“null reference”一緻,是編程中需重點防範的常見問題之一。
【别人正在浏覽】