java靜態(tài)和非靜態(tài)的調(diào)用 java成員變量賦值?
java成員變量賦值?當(dāng)然,有規(guī)則。在多態(tài)性的情況下,這兩種賦值方法應(yīng)該特別注意。例如,demo類(lèi)有一個(gè)map類(lèi)型的成員變量。如果該值是直接指定的,則需要指定映射的類(lèi)型。如果該值是通過(guò)構(gòu)造函數(shù)賦值的,
java成員變量賦值?
當(dāng)然,有規(guī)則。在多態(tài)性的情況下,這兩種賦值方法應(yīng)該特別注意。例如,demo類(lèi)有一個(gè)map類(lèi)型的成員變量。如果該值是直接指定的,則需要指定映射的類(lèi)型。如果該值是通過(guò)構(gòu)造函數(shù)賦值的,則它是不確定的。它可能是各種地圖的實(shí)現(xiàn)。因此,通過(guò)構(gòu)造函數(shù)和set方法的賦值,可以使程序更加靈活,也可以體現(xiàn)多態(tài)面向?qū)ο蟮奶攸c(diǎn)。那么在什么情況下直接指派比較好呢?我建議有些人不會(huì)更改(例如常量)或顯式指定實(shí)現(xiàn)依賴(lài)項(xiàng),例如日志記錄的日志。通常,我建議將其編寫(xiě)為final和static,并執(zhí)行web多線(xiàn)程處理。如果你能節(jié)省一些內(nèi)存,你就能節(jié)省一些內(nèi)存。不怕記性不夠。現(xiàn)在服務(wù)器的內(nèi)存是幾十GB,而且內(nèi)存非常便宜。真正的目的是節(jié)省JVM在GC上消耗的時(shí)間。總之:通過(guò)構(gòu)造函數(shù)或set方法的注解,程序更加靈活,直接賦值,在某些情況下可以節(jié)省內(nèi)存開(kāi)銷(xiāo)。
Java為什么不能在,類(lèi)中方法外給成員變量賦值(已定義)?
I=1是一個(gè)語(yǔ)句。當(dāng)語(yǔ)句出現(xiàn)在類(lèi)成員的位置(在類(lèi)中,在成員方法之外)時(shí),它需要添加{},使其成為構(gòu)造代碼塊。否則,編譯期間將報(bào)告錯(cuò)誤。更改為:classaa{inti{I=I}}public classtest{public static void main(string[]args){AAA2=newaa()}