Java中靜態(tài)變量的適用場(chǎng)景
靜態(tài)變量的類型說明符是static。靜態(tài)變量當(dāng)然是屬于靜態(tài)存儲(chǔ)方式,但是屬于靜態(tài)存儲(chǔ)方式的量不一定就是靜態(tài)變量,例如外部變量雖屬于靜態(tài)存儲(chǔ)方式,但不一定是靜態(tài)變量,必須由 static加以定義后才能成為靜態(tài)外部變量,或稱靜態(tài)全局變量。
對(duì)于自動(dòng)變量,它屬于動(dòng)態(tài)存儲(chǔ)方式。但是也可以用static定義它為靜態(tài)自動(dòng)變量,或稱靜態(tài)局部變量,從而成為靜態(tài)存儲(chǔ)方式。由此看來,一個(gè)變量可由static進(jìn)行再說明,并改變其原有的存儲(chǔ)方式。
Java類中的靜態(tài)變量在程序運(yùn)行期間,其內(nèi)存空間對(duì)所有該類的對(duì)象實(shí)例而言是共享的,有些時(shí)候可以認(rèn)為是全局變量。因此在某些時(shí)候?yàn)榱斯?jié)省系統(tǒng)內(nèi)存開銷、共享資源,可以將類中的一些變量聲明為靜態(tài)變量,通過下面的例子,你可以發(fā)現(xiàn)合理應(yīng)用靜態(tài)變量帶來的好處:
Java代碼
- public class WeekA{
- static class Data {
- private int week;
- private String name;
- Data(int i, String s) {
- week= i;
- name = s;
- }
- }
- Data weeks[] = {
- new Data(1, "Monday"), new Data(2, "Tuesay"), new Data(3, "Wednesday"), new Data(4, "Thursday"), new Data(5, "Friday"), new Data(6, "Saturday"), new Data(7, "Sunday")
- };
- public static void main(String args[]) {
- final int N = 10000;
- WeekA weekinstance;
- for (int i = 1; i <= N; i++){
- weekinstance = new WeekA ();
- }
- }
- }
- public class WeekA{
- static class Data {
- private int week;
- private String name;
- Data(int i, String s) {
- week= i;
- name = s;
- }
- }
- Data weeks[] = {
- new Data(1, "Monday"), new Data(2, "Tuesay"), new Data(3, "Wednesday"), new Data(4, "Thursday"), new Data(5, "Friday"), new Data(6, "Saturday"), new Data(7, "Sunday")
- };
- public static void main(String args[]) {
- final int N = 10000;
- WeekA weekinstance;
- for (int i = 1; i <= N; i++){
- weekinstance = new WeekA ();
- }
- }
- }
希望本文能給你帶來幫助。
【編輯推薦】