zoukankan      html  css  js  c++  java
  • 静态变量和非静态变量的区别

    内存分配:

      静态变量在应用程序初始化(被装载)时,就存在于内存当中,直到它所在的类的程序运行结束时才消亡;

      而非静态变量需要被实例化后才会分配内存。

    生存周期 :

      静态变量生存周期为应用程序的存在周期;

      非静态变量的存在周期取决于实例化的类的存在周期。

    调用方式 :

      静态变量只能通过“类.静态变量名”调用,类的实例不能调用;

      非静态变量当该变量所在的类被实例化后,通过实例化的类名直接访问。

    共享方式 :

      静态变量是全局变量,被所有类的实例对象共享,即一个实例的改变了静态变量的值,其他同类的实例读到的就是变化后的值;

      非静态变量是局部变量,不共享的。

    访问方式 :

      静态成员不能访问非静态成员; 
      非静态成员可以访问静态成员。

    附:

      静态构造函数:

        用于对静态字段、只读字段等的初始化。

        添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。

        一个类只能有一个静态构造函数。

        无参数的构造函数可以与静态构造函数共存。尽管参数列表相同,但一个属于类,一个属于实例,所以不会冲突。

        如果没有写静态构造函数,而类中包含带有初始值设定的静态成员,那么编译器会自动生成默认的静态构造函数。

  • 相关阅读:
    LeetCode 88. Merge Sorted Array
    LeetCode 75. Sort Colors
    LeetCode 581. Shortest Unsorted Continuous Subarray
    LeetCode 20. Valid Parentheses
    LeetCode 53. Maximum Subarray
    LeetCode 461. Hamming Distance
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode 976. Largest Perimeter Triangle
    LeetCode 1295. Find Numbers with Even Number of Digits
    如何自学并且系统学习计算机网络?(知乎问答)
  • 原文地址:https://www.cnblogs.com/WebApp-DotNet/p/6229605.html
Copyright © 2011-2022 走看看