⑴ java Static變數是不是只在類載入的時候賦值一次,以後創建類的對象的時候 不會再重新賦值
static變數值在類載入的時候分配空間,以後創建類對象的時候不會重新分配。
賦值的話,是可以任意賦值的
⑵ java 中什麼不能把static 修飾的變數賦值給沒有static修飾的變數啊
如果方法被標記為static,那麼只能是用表示static的方法和變數。原因是,被標記為static的方法和變數,是在類載入的時候加入到內存,可以直接使用,值永遠只有一份。而非static的方法和變數,要等到類被實例化以後才能使用。你可以這么理解,就是類存在,static的變數和方法就存在,而非static的變數和方法,只有實例存在才存在。望採納!謝謝。
⑶ java中使用static聲明的變數是否必須賦初值
你自己上機實驗下不就知道了。不必賦初值的(可以通過編譯,也可以運行,調用的時候,系統會默認給他值)
但是按照規范寫法,還是要附個初值給他,無論給任何變數賦值,都最好要給他附一個初值。
⑷ java數組靜態賦值
這兩種初始化方法在本質上是沒有什麼區別的,只是第二種方法只能在數組定義的時候對數組初始化;而第一種方法可以出現在程序的任何地方,也就是你定義了一個數組變數,然後可以在任何地方用第一種方法對其進行初始化;第二種方法甚至可以作為方法的參數。
可以參考下面的程序:
import java.util.Arrays;
public class ArrayInitialization {
public static void main(String[] args) {
int[] a = { 1, 2, 3 };
int[] b;
b = new int[] { 4, 5, 6 };
printArray(a);
printArray(b);
printArray(new int[] { 7, 8, 9 });
}
static void printArray(int[] array) {
System.out.println(Arrays.toString(array));
}
}
⑸ JAVA中靜態變數如何動態賦值
寫一個方法,然後用方法的參數t2給t1賦值,另一個類val用的時候,先用demo的一個對象,調用方法,修改t1
⑹ JAVA中怎麼通過非靜態方法給一個靜態變數賦值
public class staticTest1
{
public static int java;
public void setJava(int java)
{
this.java = java;
}
public static void main(String args[])
{
staticTest st = new staticTest();
st.setJava(2009);
System.out.println(st.java);
}
}
如你所說,這樣是完全能辦到的,及:
靜態方法給非靜態變數賦值!
下面這個程序就不能編譯通過!!
public class staticTest2
{
public int c;
public static void setC(int c)
{
this.c = c;
}
public static void main(String args[])
{
staticTest st = new staticTest();
st.setC(2000);
System.out.println(st.c);
}
}
提示錯誤:
無法從靜態上下文中,引用非靜態變數!
祝樓主,天天向上!!
⑺ java常量靜態賦值與動態賦值的區別
這里需要的是編繹時常量,其值在編繹時就能確定。IF1.BB 時寫死的,編譯時就能確定其值。IF1.AA 要在運行時才能確定其值。