單例和多例的應用場景 靜態(tài)類和單例的區(qū)別及相互轉(zhuǎn)換?
靜態(tài)類和單例的區(qū)別及相互轉(zhuǎn)換?Java類中的靜態(tài)變量:如果靜態(tài)變量是SQL語句,不同的實例可以通過類名調(diào)用SQL語句的靜態(tài)變量。這個靜態(tài)變量在加載類時一起加載到內(nèi)存中,并且只加載一次。相反,如果SQL
靜態(tài)類和單例的區(qū)別及相互轉(zhuǎn)換?
Java類中的靜態(tài)變量:如果靜態(tài)變量是SQL語句,不同的實例可以通過類名調(diào)用SQL語句的靜態(tài)變量。這個靜態(tài)變量在加載類時一起加載到內(nèi)存中,并且只加載一次。相反,如果SQL語句不是靜態(tài)變量,則100個實例有100個變量,即使變量的值是SQL語句。還要注意,靜態(tài)變量可以在沒有最終修改的情況下進行更改。單例模式下的成員變量:只有在創(chuàng)建實例時才初始化該成員變量,而不是在將類加載到內(nèi)存時初始化。例如,通信端口是單端口的,以避免通信端口同時被兩個請求調(diào)用。
單例模式有幾種?如何優(yōu)化?
惰性單例模式:加載類時未初始化。
匈牙利單例模式:初始化是在類加載時完成的,所以類加載比較慢,但是獲取對象的速度比較快。
沒有優(yōu)化的想法。我們要詳細看看
單例模式是一種常見的軟件設計模式。在其核心結(jié)構(gòu)中,只有一個稱為singleton的特殊類。singleton模式可以確保系統(tǒng)中每個類只有一個實例。也就是說,一個類只有一個對象實例。