Java面向对象---Static关键词

内容

静态:Static

用法

Static是一个修饰符,用于修饰成员(成员变量,成员函数),当成员被静态修饰后,除了可以被对象调用外,还可以直接被类名调用。
举例

class Person {
    String name;  //成员变量,实例变量
    static String country = "CN"; //静态的成员变量,类变量
}
public class StaticDemo {
    public static void main(String[] args) {
        Person p = new Person();
        System.out.println(p.country);     //使用对象调用
        System.out.println(Person.country);//直接使用类名调用
    }
}//加入Java开发交流君样:756584822一起吹水聊天

运行结果:

CN
CN

特点

Static关键词所修饰的成员随着类的加载而加载(随着类的消失而消失),也就是说静态变量不需要依靠创建对象而存在在内存中,所以它的生命周期最长

优先于对象存在
(静态是先存在的,对象是后存在的)

被所有对象所共享

可以直接被类名所调用

实例变量和类变量的区别

存放位置
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。

生命周期
类变量生命周期最长,随着类的消失而消失。
实例变量的生命周期取决于对象的建立和消失。

静态使用注意事项

  • 对于数据,需要区分特有数据和共有数据。
    特有数据随着对象存储,不使用静态修饰。由于静态变量的生命周期较长,如果定义过多静态变量会导致过多的内存被消耗。
  • 静态方法只能访问静态成员。
  • 非静态方法既可以访问静态也可以访问非静态。 静态方法中不可以定义this,super关键字。因为静态优先于对象存在。

静态的利弊

利:
对对象共享的数据进行单独空间地存储,节省空间。
可以直接使用类名调用,调用方便。
弊:
生命周期过长。
访问的局限性较大。
image

最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:756584822

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值