Java 学习和实践笔记(20):static的含义和使用

static的本义是静止的。在计算机里就表示静态变量。

在Java中,从内存分析图上可以看到,它与类、常量池放在一个区里:

从图可以看到,普通的方法和对象属性,都在heep里,而static则在方法区里。

static声明的属性或方法:静态变量,又叫类变量)、静态方法(又叫类方法)s

静态变量/静态方法生命周期和类的生命周期相同,在整个程序执行期间都有效。

它有如下特点:

  1. 为该类的公用变量,属于类,被该类的所有实例共享,在类载入时被初始化。

  2. static 成员变量只有一份。

3)一般用"类名.类属性(又叫类变量,变量=属性)/方法"来调用。

  1. 在static方法中不可直接访问非static的成员。
java 复制代码
public class TestStatic {
    int id;
    String name;
    static String company = "AP";//这就是定义一个静态变量

    public TestStatic(int id, String name) {//定义一个对象构造器
        this.id = id;
        this.name = name;
    }

    public void login(){//定义一个普通的方法
        System.out.println(name);
    }

    public  static void  printCompany(){ //定义一个静态方法
        //loign();//静态方法里不能直接调用普通方法
        System.out.println(company);//在静态方法里可以调用静态变量
    }

    public static void main(String[] args) {
        TestStatic u = new TestStatic (101,"Jason");
        //定义一个TestStatic的类对象u
        TestStatic.printCompany();//直接执行类的方法
        TestStatic.company = "剑桥";//更改类的静态变量的值
        TestStatic.printCompany();

    }


}
相关推荐
编程乐学(Arfan开发工程师)1 分钟前
56、原生组件注入-原生注解与Spring方式注入
java·前端·后端·spring·tensorflow·bug·lua
zsq25 分钟前
【论文阅读笔记】HaDes幻觉检测benchmark
论文阅读·笔记·nlp·大语言模型幻觉
ThreeYear_s1 小时前
基于FPGA的PID算法学习———实现P比例控制算法
学习·fpga开发
恰薯条的屑海鸥1 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)
学习·安全·web安全·渗透测试·网络安全学习
周某某~1 小时前
七.适配器模式
java·设计模式·适配器模式
奔跑的小十一2 小时前
JDBC接口开发指南
java·数据库
刘大猫.3 小时前
业务:资产管理功能
java·资产管理·资产·资产统计·fau·bpb·mcb
nenchoumi31193 小时前
Swift 6 学习笔记(二)The Basics
笔记·学习·swift
YuTaoShao3 小时前
Java八股文——JVM「内存模型篇」
java·开发语言·jvm
开开心心就好3 小时前
电脑扩展屏幕工具
java·开发语言·前端·电脑·php·excel·batch