zoukankan      html  css  js  c++  java
  • java static介绍

    static用于修身成员变量和成员方法,但是不能修饰局部变量。在开发中,一般不使用静态,因为静态的存储中期较长,一般会造成空间的浪费。

    静态不存在于堆内存中,静态的成员或方法,可以直接被堆内存调用,静态可以直接通过类名来调用。

    静态存在的原因,是为了把共享的东西提取出来,方便其他程序的调用。

    静态成员随着类的加载而加载,静态成员优先于对象存在,静态成员被所有对象共享,静态成员可以被类名直接调用,也可以通过对象来调用。

    方法区,堆,栈。静态成员在静态方法区中。

    静态方法只能访问静态成员(因为静态方法随着类的加载已经加载,非静态成员在类的加载时并没有加载),所以在前面写选择排序和冒泡排序的时候才会写静态方法,因为住函数是静态的。否则,排序法写在主函数中,是不必设置为静态方法的。

    非静态方法可以访问静态方法也可以访问非静态。

    静态方法不能定义this和super,因为this代表当前对象,而静态存在时,有可能没有对象。

    静态的好处:多了一种访问形式。类名.静态成员

    弊端:静态方法只能访问静态成员,出现了访问局限性。

    //静态和非静态的区别

    1.静态变量也称为类变量。可直接被类名调用,所属于类,

    非静态变量,称为实例变量,是被对象调用的,所属于对象。

    2.静态变量随类的加载而加载,消失而消失,生命周期长。非静态变量,随类的创建而加载,对象的消失而消失。生命周期较短。

    3,静态变量存在于方法去,非静态变量存在于堆内存。

    4.静态变量被所有对象共享,实例变量是对象中的特有数据。

  • 相关阅读:
    Spring通过springframework.data的@PageableDefault注解分页
    Specifications动态查询
    IDEA生成序列号serialVersionUID快捷键
    JS组件系列——表格组件神器:bootstrap table(还没细看)
    南昌网络赛 Distance on the tree(可持久化线段树)
    南昌网络赛 Max answer(单调栈)
    HDU 6148 Valley Numer(数位DP)
    python 二位dict
    Codeforces Round #230 (Div. 2) 题解
    Codeforces Round #228 (Div. 2) 题解
  • 原文地址:https://www.cnblogs.com/laok/p/4751293.html
Copyright © 2011-2022 走看看