zoukankan      html  css  js  c++  java
  • static

    static : 是一个访问修饰符,用来修饰对象的成员属性和成员方法。

    当成员用static修饰后,不仅可以用对象调用,还可以直接通过类名来调用。

    static的成员在内存中不是放在堆内存,而是放在 一个共享区包括 方法区(类中的方法,静态成员)、数据区等

    特点:

    1.随着类的加载来加载,随着类的消失而消失,也就是说他的生命周期最长。

    2.优先于对象存在。

    3.为所有对象所共享

    4.不仅可以被对象引用,还可以直接通过类名来调用

      类变量 实例变量
    内存 存在于方法区中 存在于堆内存中

    生命周期

    生命周期最长,随类的建立而建立,消失而消失 随着对象的建立和消失而建立和消失

    静态使用注意事项:

    1.静态方法只能访问静态成员(方法和变量);非静态方法可以访问静态方法

    2.静态方法中不可以定义this super 关键字,因为静态优先于对象存在,this 和super均是对象的引用

    3.主函数是静态的

    它的优缺点:

    优点:对对象共享的共享数据进行单独空间的存储,节省内存空间; 可以被类名直接调用,而不一定要定义对象。

    缺点:但是它的声明周期过长,且访问有一定的局限性。

    什么时候使用static呢? 可以从两方面来说,因为static可以用来修饰变量和方法

    什么时候定义static 变量呢?

    A: 当对象中出现共享数据时,该数据被静态所修饰

    什么时候定义static方法呢?

    A:当功能方法内部没有访问到非静态数据(对象特有数据)时,那么该功能可以定义成静态的。

  • 相关阅读:
    Hibernate之HQL查询
    Java设计模式----状态模式(State)
    Java设计模式----备忘录模式(Memento)
    Java设计模式----命令模式(Command)
    Java设计模式----责任链模式(Chain of Responsibility)
    Java基础小知识
    Hibernate检索策略
    Java设计模式----观察者模式(Observer)
    Google代码实验室
    Codeforces Round #257 (Div. 2) 前四题
  • 原文地址:https://www.cnblogs.com/Lillian-1304/p/Static.html
Copyright © 2011-2022 走看看