Java中靜態(tài)變量的適用場景
靜態(tài)變量的類型說明符是static。靜態(tài)變量當然是屬于靜態(tài)存儲方式,但是屬于靜態(tài)存儲方式的量不一定就是靜態(tài)變量,例如外部變量雖屬于靜態(tài)存儲方式,但不一定是靜態(tài)變量,必須由 static加以定義后才能成為靜態(tài)外部變量,或稱靜態(tài)全局變量。
對于自動變量,它屬于動態(tài)存儲方式。但是也可以用static定義它為靜態(tài)自動變量,或稱靜態(tài)局部變量,從而成為靜態(tài)存儲方式。由此看來,一個變量可由static進行再說明,并改變其原有的存儲方式。
Java類中的靜態(tài)變量在程序運行期間,其內(nèi)存空間對所有該類的對象實例而言是共享的,有些時候可以認為是全局變量。因此在某些時候為了節(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 ();
- }
- }
- }
希望本文能給你帶來幫助。
【編輯推薦】