程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-小白求助。麻煩幫忙看看給解釋解釋

java-小白求助。麻煩幫忙看看給解釋解釋

編輯:編程解疑
小白求助。麻煩幫忙看看給解釋解釋

package com.imooc;

public class Test{
public static void main(String[] args) {

    T t1 = new T();
    T t2 = new T();

    System.out.println("t1's i ="+t1.i+"\tt1's j="+t2.j);

    System.out.println("t2's i ="+t2.i+"\tt2.s j="+t2.j);
}

}

class T{
static int i = 0;
int j = 0;

T(){
    i++;
    j = 1;
}

}

輸出結果是這個:為什麼啊?

t1's i =2 t1's j=1
t2's i =2 t2.s j=1

最佳回答:


一個變量如果被static 修飾,那麼在伴隨著類的實例化將在內存中,開辟一個空間用來專門存儲該變量。
特點是 被static修飾的成員變量和成員方法獨立於該類的任何對象。也就是說,它不依賴類特定的實例,被類的所有實例共享。
問題中i變量被static修飾當你new t1 的時候 i變成1 new t2時用的是同一個i 所以i在內存中變成2

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved