JAVA常量,静态变量,变量的理解,面试有感

最近面试了一些java初级,中级程序员,现场出了一个很简单的题,看看他们对java常量,变量,静态变量的理解,结果很让我失望,代码如下:

public class TestVar {

/**
* 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";// 定义一个常量aa

public static String bb = "321";// 定义一个静态变量bb

public String cc = "666";// 定义一个变量cc

}

输出结果:

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

如此简单的一段代码,居然大多数人回答都是错误的,其中不乏工作三四年的java开发人员!

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

有空的童鞋,可以读下JVM虚拟机规范深入了解一下!
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值