• java学习之static关键字(上)


    static关键字:

    • 用于修饰成员(成员变量和成员函数)

    被修饰后的成员具备以下特点:

    • 随着类的加载而加载
    • 优先于对象存在
    • 被所有对象所共享
    • 可以直接被类名调用

    static的特点

    1. static是一个修饰符,用于修饰成员
    2. static修饰的成员被所有的成员所共享。
    3. static优先于对象存在,因为static的成员随着类的加载就已经存在
    4. static修饰的成员多了一种调用方式,可以直接用类名调用
    5. static修饰的数据是共享数据,对象中存储的数据是特有数据

    成员变量与静态变量的区别

    1 . 两个变量的生命周期不同

    • 成员变量随着对象的创建而存在,随着对象的被回收而释放。
    • 静态变量随着累的加载而存在,随着类的消失而消失。

    2 . 调用方式不同

    • 成员变量只能被对象调用。
    • 静态变量可以被类和对象调用。

    3 . 别名不同

    • 成员变量也称为实例变量。
    • 静态变量称为类变量。

    4 . 数据存储位置不同

    • 成员变量数据存储位置在堆内存的对象中,所以也叫对象的特有数据。
    • 静态变量存储在方法区(静态区)中,所以也叫对象的共享数据。

    使用注意

    • 静态方法只能访问静态成员(局限性,非静态可以访问静态,有可以访问静态)
    • 静态方法中不可以使用this、super关键字
    • 主方法是静态的
    • 由于static修饰的数据是共享数据,如果此数据在一处被修改,在使用此数据的其他对象中的数据也将被修改。

    例:主函数

    public class void main(String[] args)

    主函数的特殊之处:

    1. 格式是固定的
    2. 被JVM调用和识别
    • public : 最大权限
    • static : 不需要对象,直接用主函数所属类名调用
    • void : 主函数没有具体的返回值
    • main : 函数名,不是关键字,只是能够被JVM识别的名字
    • string[] args : 主函数的参数列表,是一个数值类型的参数,而且元素都是字符串类型。

    Test.java

    public class Test{
    	public static void main(String[] args){
    		System.out.println(args);
    		System.out.println(args.length);
    	}
    }
    

    输出结果:

    // [(表示为数组)、L(long)、java.lang(包名)、String(类)、@659e0bfd(哈希值)

    [Ljava.lang.String;@659e0bfd  
    

    0

  • 相关阅读:
    node.js JS对象和JSON字符串之间的转换
    read和write函数
    使用stdarg.h实现可变长度参数
    PHP __DIR__, __FILE__, __FUNCTION__, __CLASS__, __METHOD__, __LINE__, __NAMESPACE__
    Yii中 RBAC(基于角色的访问控制权限)表结构原理分析
    让服务器apache/iis/nginx支持.apk/ipa文件下载
    jQuery的maskedinput插件 设置input掩码
    修改XCode的Product的输出目录(有时不生效需看)
    OC的类别(分类)和拓展
    C和C++混合编程中的extern "C" {}
  • 原文地址:https://www.cnblogs.com/mnzero/p/4654170.html
Copyright © 2020-2023  润新知