A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ZhaoF 中级黑马   /  2015-1-23 15:44  /  1204 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static关键字。

1.应用:
       1)、用于修饰成员(成员变量和成员函数)。
       2)、当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。格式:类名.静态成员。

2.特点:
       1)、随着类的加载而加载。
       2)、优先于对象存在。
       3)、被所有对象所共享。
       4)、可以直接被类名调用。

3.实例变量(成员变量)和类变量(静态成员变量)的区别:
                                                     1)、存放位置。类变量随着类的加载而存在于方法区中;实例变量随着对象的建立而存在于堆内存中。
                                                     2)、生命周期。类变量生命周期最长,随着类的消失而消失;实例变量生命周期随着对象的消失而消失。

4.静态使用注意事项:
                   1)、静态方法只能访问静态成员。
                   2)、静态方法中不可以定义this,super关键字。因为静态优先于对象存在。所以静态方法中不可以出现this。

5.静态有利有弊:
               利处:对对象共享数据进行单独空间的存储,节省空间。没有必要每一个对象中都存储一份。可以直接被类名调用。
               弊端:生命周期过长。访问出现局限性。(静态虽好,只能访问静态)。

6.什么时候使用静态(从两方面下手: 因为静态修饰的内容有成员变量和函数):
                                                                        1)、什么时候定义静态变量呢?
                                                                            当对象中出现共享数据时,该数据被静态所修饰。对象中的特有数据要定义成非静态存在于堆内存中。
                                                                        2)、什么时候定义静态函数呢?
                                                                            当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

4 个回复

正序浏览
感觉自己静态比较模糊   刚好借鉴 谢谢
回复 使用道具 举报
写的很全面
回复 使用道具 举报
静态代码块在类里,随着类的加载而加载,而且只加载一次。
回复 使用道具 举报
加油呀!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马