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的角度来说它是在常量池中
静态变量:所有实例共享的一块内存,其中一个实例改变它的值其它的实例也随之改变
变量:每一个实例创建的时候都会给变量分配一块内存,创建一百个实例那就是一百块变量内存,创建一千个实例就是一千块变量内存


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM