靜態(tài)方法和單例的區(qū)別 單例模式和全局靜態(tài)變量的區(qū)別?
單例模式和全局靜態(tài)變量的區(qū)別?1. 單例特性:確保只有一個(gè)類的唯一實(shí)例存在。類本身初始化自己。獲取唯一實(shí)例的方法非常清楚。可以通過類本身定義的靜態(tài)方法getInstance()獲取類的唯一實(shí)例引用。2
單例模式和全局靜態(tài)變量的區(qū)別?
1. 單例特性:確保只有一個(gè)類的唯一實(shí)例存在。類本身初始化自己。獲取唯一實(shí)例的方法非常清楚??梢酝ㄟ^類本身定義的靜態(tài)方法getInstance()獲取類的唯一實(shí)例引用。2靜態(tài)變量定義類的實(shí)例引用特性:類實(shí)例引用的靜態(tài)變量可以在任何文檔類中定義。獲取類實(shí)例引用的靜態(tài)變量。您可以定義靜態(tài)變量的類名,并通過點(diǎn)語法訪問引用。靜態(tài)變量可以在任何位置重新賦值。Singleton模式是對靜態(tài)變量方式創(chuàng)建類實(shí)例引用的缺陷的改進(jìn)
Java類中的靜態(tài)變量:如果靜態(tài)變量是SQL語句,不同的實(shí)例可以通過類名調(diào)用SQL語句的靜態(tài)變量。這個(gè)靜態(tài)變量在加載類時(shí)一起加載到內(nèi)存中,并且只加載一次。相反,如果SQL語句不是靜態(tài)變量,則100個(gè)實(shí)例有100個(gè)變量,即使變量的值是SQL語句。還要注意,靜態(tài)變量可以在沒有最終修改的情況下進(jìn)行更改。單例模式下的成員變量:只有在創(chuàng)建實(shí)例時(shí)才初始化該成員變量,而不是在將類加載到內(nèi)存時(shí)初始化。例如,通信端口是單端口的,以避免通信端口同時(shí)被兩個(gè)請求調(diào)用。
靜態(tài)類和單例的區(qū)別及相互轉(zhuǎn)換?
簡而言之,每個(gè)進(jìn)程都有自己獨(dú)立的內(nèi)存空間,然后加載它。單身漢不會自然地被分享。一個(gè)進(jìn)程相當(dāng)于擁有自己的單例。