JAVA基础,常量,变量,静态变量

最近面试了一些java初级,中级程序员,现场出了一个简单的题,结果让我大跌眼镜:
public class TESTAA {

/**
* JAVA基础,常量,变量,静态变量
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
A a = new A();
A b = new A();

System.out.println("a.aa.value =" + a.aa);
System.out.println("b.aa.value =" + b.aa);

System.out.println("========================");
System.out.println("a.bb.value =" + a.bb);
System.out.println("b.bb.value =" + b.bb);

System.out.println("#########################");
a.bb = "654321";
System.out.println("a.bb.value =" + a.bb);
System.out.println("b.bb.value =" + b.bb);

System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%");
b.bb = "123456";
System.out.println("a.bb.value =" + a.bb);
System.out.println("b.bb.value =" + b.bb);
}
}

class A {
public static final String aa = "123";// 常量

public static String bb = "321";// 静态变量

public String cc = "666";// 变量

}

输出结果:
a.aa.value =123
b.aa.value =123
========================
a.bb.value =321
b.bb.value =321
#########################
a.bb.value =654321
b.bb.value =654321
%%%%%%%%%%%%%%%%%%%%%%%%%
a.bb.value =123456
b.bb.value =123456

很简单的一段代码,最基础的东西,工作了三四年的开发也能答错,这些人实在是不敢收之!

简单的理解:
常量:从jvm角度来说它是在常量池中
静态变量:所有实例共享的一块内存,一个实例改变了其余的实例也随之改变
变量:创建一个实例就给这个变量分配一块内存,创建一百个实例就会创建一百个变量



你可能感兴趣的:(java,变量,静态变量,常量,面试瞪眼)