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

  • 相关阅读:
    WCF 绑定(Binding)
    WCF 配置服务 (02)
    WCF 双工模式
    .NET开源高性能Socket通信中间件Helios介绍及演示
    关于WCF服务在高并发情况下报目标积极拒绝的异常处理
    HTTP状态管理机制之Cookie
    JavaScript 总结几个提高性能知识点
    windows下nginx安装、配置与使用
    Windows下Nginx的安装与配置
    大型架构.net平台篇(WEB层均衡负载nginx)
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/10573513.html
Copyright © 2011-2022 走看看