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

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

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

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

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

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

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

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

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

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

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

    //静态和非静态的区别

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

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

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

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

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

  • 相关阅读:
    aws-rds for mysql 5.7.34搭建备库
    Redis 未授权访问漏洞利用总结(转)
    mongoexport/mongimport命令详解
    mongodump/mongorestore命令详解
    redis stream类型 常用命令
    system_time_zone参数值由来
    MySQL加密解密函数AES_ENCRYPT AES_DECRYPT
    MySQL开启SSL加密
    MDL锁获取顺序和优先先
    explicit_defaults_for_timestamp 参数说明
  • 原文地址:https://www.cnblogs.com/laok/p/4751293.html
Copyright © 2011-2022 走看看