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

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

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

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

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

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

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

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

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

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

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

    //静态和非静态的区别

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

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

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

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

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

  • 相关阅读:
    Tomcat与Spring中的事件机制详解
    Kafka消息系统基础知识索引
    配置SpringBoot-从日志系统配置说起
    支付宝手机网页支付和微信公众号支付接入
    centos下搭建YII环境
    为什么需要 Stream
    基于Django的Rest Framework框架的序列化组件
    基于Django的Rest Framework框架的RESTful规范研究
    web中状态码301和302的区别
    Django初见
  • 原文地址:https://www.cnblogs.com/laok/p/4751293.html
Copyright © 2011-2022 走看看