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