zoukankan      html  css  js  c++  java
  • 10,静态变量和实例变量的区别?

    1.从语法上的区别:

            静态变量前面要加static关键字,而实例变量前不加

    2.在程序运行时的区别:

           实例变量属于某个对象的属性,必须 创建了实例对象,其中的实例变量才会 被分配到空间,

    才能使用这个实例变量。静态 变量不属于某个 实例对象,而是属于类,所以称为类变量 ,只要程序加载了

    类的字节码,不用创建任何实例对象,静态变量就会被分配到空间,静态变量就可以被使用了 。

    总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

    代码如下:

    public class Test {
        
        public static int staticVar = 0;
        
        public int  instanceVar = 0;
        
        
        
        public Test(){
            
            staticVar++;
            
            instanceVar++;
            
            System.out.println("staticVar="+staticVar);
            
            System.out.println("instanceVar="+instanceVar);
            
        }
        
        public static void main(String[] args) {
               Test v =  new Test();
               Test v1 =  new Test();
               Test v3 =  new Test();
        }

    }

    运行结果 如下:

    staticVar=1
    instanceVar=1
    staticVar=2
    instanceVar=1
    staticVar=3
    instanceVar=1

    代码分析:

    无论创建多少个实例对象(Test v =  new Test();),永远都只分配了一个staticVar变量

    并且每创建一个实例对象,这个staticVar就会加1;但是,每创建一个实例对象,就会分配一个instanceVar,

    即可能分配多个instanceVar,并且每个instanceVar的值都只加了一次

  • 相关阅读:
    Smart Client Architecture and Design Guide
    Duwamish密码分析篇, Part 3
    庆贺发文100篇
    .Net Distributed Application Design Guide
    New Introduction to ASP.NET 2.0 Web Parts Framework
    SPS toplevel Site Collection Administrators and Owners
    来自Ingo Rammer先生的Email关于《Advanced .Net Remoting》
    The newsletter published by Ingo Rammer
    深度探索.Net Remoting基础架构
    信道、接收器、接收链和信道接受提供程序
  • 原文地址:https://www.cnblogs.com/helenwq/p/11648845.html
Copyright © 2011-2022 走看看