• Java中的static关键字


    1.static可以用来修饰类的成员:成员变量和成员方法

    2.static修饰的类成员的特点:

    • 随着类的加载而加载,随着类的消失而消失,也就是说它的生命周期最长。
    • 优先于对象的存在,静态先存在,对象后存在
    • 被所有对象共享
    • 可以直接被类名调用,也可以用对象调用

    3.实例变量和类变量的区别:

    • 实例变量存与对象一起,存在与堆内存
    • 静态变量随着类的加载而存放与方法区内存(共享区内存)

    注意:

    • 静态变量和静态方法是属于类的,而不是属于对象的。类的不同的对象可以共享静态变量和静态方法。
    • 这里我们要注意类和对象的区别。
    • 静态成员是先于对象而存在的,因为静态成员属于类所有。

    比如,下面的代码中,write()是个静态方法,它就不能调用name这个非静态变量。

    因为name不是静态的,它属于对象,当我们用Person.write()或者Person.name去调用时,对象还不存在呢。

    class Person {
    
        private String name;
        static String country = "大唐";
    
        public static void write() {
            System.out.println("国家:" + Person.country);
            System.out.println("诗人:" + name);
        }
    
        public void speak() {
            System.out.println("长恨歌:在天愿做比翼鸟,在地愿为连理枝。");
        }
    
    }
    
    
    class PersonTest {
        public static void main(String[] args) {
            Person.write();
    
        }
    }

    如果把改成下面的this.country,IDEA会直接报错提示,这个country是静态变量需要通过Person.name去访问。

    访问name是可以写成Person.name也可以不加Person,直接写name也是可以的。

    public static void write() {
            System.out.println("国家:" + this.country);//this在这里是错误的,因为this代表对象而不是类
           // System.out.println("诗人:" + name);
        }
  • 相关阅读:
    关于导出数据库提示 outfile disabled的解决方案
    mysql的日志管理
    Node.js aitaotu图片批量下载Node.js爬虫1.00版
    Node.js umei图片批量下载Node.js爬虫1.00
    Node.js abaike图片批量下载Node.js爬虫1.01版
    JS 数字左补零函数
    Node.js 向一个文件添加内容
    JS 取得当前日期时间(文本形式)
    Node.js abaike图片批量下载Node.js爬虫1.00版
    Node.js nvshens图片批量下载爬虫 1.00
  • 原文地址:https://www.cnblogs.com/majestyking/p/12384831.html
Copyright © 2020-2023  润新知