① java中static变量能不能再赋值,也就是说能不能再改变它的值
static变量在编译时已经分配内存,
定义static变量是称为静态变量
也是局部变量
谁说全局就不能改变值了
除非是
static
final声明,就成常量了,就不能改了
② java中利用反射为变量赋值的时候,为什么变量需要声明为static的
因为静态只能接收静态,反射获得的值是静态的。
例如:
public class Test{
public static void main(String[] args) {
aaa();
int n = num;
}
int num =100;
public void aaa(){}
}
aaa()和num会被强制转为static类型;
可以这样:
public static void main(String[] args) {
Test test = newTest();//实例化
test .aaa();
int n = test .num;
}
③ java static {}的用法
static 关键字很有意思哦
public static String getProperty(String key) { 这里不用说了,静态方法
就说说static{}
称为static代码块 ,也叫静态代码块,
是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次
利用静态代码块可以对一些static变量进行赋值
例子
public class Test5 {
private static int a;
private int b;
static{
Test5.a=3;
System.out.println(a);
Test5 t=new Test5();
t.f();
t.b=1000;
System.out.println(t.b);
}
static{
Test5.a=4;
System.out.println(a);
}
public static void main(String[] args) {
// TODO 自动生成方法存根
}
static{
Test5.a=5;
System.out.println(a);
}
public void f(){
System.out.println("hhahhahah");
}
}
运行结果:
3
hhahhahah
1000
4
5
④ java常量静态赋值与动态赋值的区别
这里需要的是编绎时常量,其值在编绎时就能确定。IF1.BB 时写死的,编译时就能确定其值。IF1.AA 要在运行时才能确定其值。
⑤ java中使用static声明的变量是否必须赋初值
你自己上机实验下不就知道了。不必赋初值的(可以通过编译,也可以运行,调用的时候,系统会默认给他值)
但是按照规范写法,还是要附个初值给他,无论给任何变量赋值,都最好要给他附一个初值。
⑥ java static 变量能 赋值吗
可以。
标记为final的才不可以赋值。
⑦ JAVA中静态变量如何动态赋值
写一个方法,然后用方法的参数t2给t1赋值,另一个类val用的时候,先用demo的一个对象,调用方法,修改t1
⑧ java 构造器中可不可以给静态变量赋值为啥
当然可以,静态变量只是在你类加载的时候初始化了,可以直接引用并修改;
⑨ Java Static变量是不是只在类加载的时候赋值一次,以后创建类的对象的时候 不会再重新赋值
static变量值在类加载的时候分配空间,以后创建类对象的时候不会重新分配。
赋值的话,是可以任意赋值的
⑩ java 中什么不能把static 修饰的变量赋值给没有static修饰的变量啊
如果方法被标记为static,那么只能是用表示static的方法和变量。原因是,被标记为static的方法和变量,是在类加载的时候加入到内存,可以直接使用,值永远只有一份。而非static的方法和变量,要等到类被实例化以后才能使用。你可以这么理解,就是类存在,static的变量和方法就存在,而非static的变量和方法,只有实例存在才存在。望采纳!谢谢。