认识java修饰符-----static

static的英文翻译是形容词“静态的”。为什么叫“静态”?这个是因为被static修饰的东西只在类被加载时加载一次,即只分配配置一次存储空间,以后都不再“挪窝”了,即以后打死都不再“动了”,只静止的待在原始分配的存储空间里,所以叫“静态”;

------------------------------------------------------------------------------------------

1. static为了解决什么问题而存在?

    一般要使用类里的方法或变量,必须aa=new 类();------>然后aa.变量、aa.方法;通过对象使用方法或变量;

    实际中jvm加载类后,可能根本没创建类对象(new),却要使用类里的方法、变量,这该怎么办?

    于是就有了static ... ... ...能够使你即使没有new对象,也能直接调用类里的方法、变量;

------------------------------------------------------------------------------------------------------------------------------------------------

2. 所以static有了这样的特征:

    static修饰的方法不是对象的方法,而是整个类的方法;

    * 随着类的加载而加载 ,随着类的消失而消失 ,static的生命周期最长,对内存的消耗也大;

   * static静态方法:     被动执行,即在不创建对象的情况下,其他程序来调用的时候才执行,不调用不执行;

   * static静态代码块:  主动执行,即项目启动时就执行;

   * static静态方法:     当类被载入时进行初始化,但不执行,而是通过类名直接调用执行;

   * static静态代码块:  当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化;

   * 静态方法不能以任何方式引用this和super关键字,因为它不属于任何对象;

-------------------------------------------------------------------------------------------------------------------------------------------------

点评一下:

      怎么感觉“类被加载时”和“项目启动时”在这些语句中可以互换! 项目启动的第一步就是类的加载,它们还真是一回事;

----------------------------------------------------------------------------------------------------------------------------------

使用static利弊:

好处: 调用方便,可直接通过类名调用;

        若通过对象调用,每创建一个对象都会重新开辟内存空间,而对象里的不会用到的方法变量也是占用空间的,这就造成了空间浪费,而用static节省空间;        

弊端:  生命周期过长;  

         访问出现局限性,只能访问静态;


   











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值