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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高泳 中级黑马   /  2014-9-23 15:44  /  1478 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Static可以直接理解为一个类创建出来的所有对象的共有资源吗?

7 个回复

倒序浏览
类中的静态变量和静态方法在类没有new的时候可直接调用。
例如:类A(其中有静态变量b和静态方法m),A的一个实例a(A a=new A();)
调用时可以用A.b和A.m,也可以用a.b和a.m,并且两种调法是一样的。这里的一样是完全一样。
静态方法可以直接调用主要是因为在JVM运行时就将静态方法加载到内存中了 所以不需要实例类
回复 使用道具 举报
静态区随类加载就存在了,优先于对象存在。
回复 使用道具 举报
我是来学习的
回复 使用道具 举报
你可以把static理解为new了一个对象。
静态的,相当于固定存在的。
new相当于,你对java虚拟机说,java虚拟机对电脑说,我需要一块内存,然后电脑给你一块内存存放类或变量,在一定时间未使用或无其他调用关联时,被java回收机制销毁。
static相当于你标识了这个类或变量,java虚拟机运行的时候,直接对电脑说,我需要一块固定的内存空间,并且这块内存空间在程序的整体运行停止之前,是不会销毁的。
回复 使用道具 举报
我再看看。。
回复 使用道具 举报
LFW 中级黑马 2014-9-24 13:22:17
7#
static修饰的成员就是类成员,类成员属于整个类,不属于单个对象。随类的加载而加载,直到该类被卸载消亡。可以理解为被所有对象共享。对象可以访问类field,但更建议直接类名.field(C#只支持这个,不支持实例对象访问类field)。这是我从书上看到的知识。
回复 使用道具 举报
可以这么理解吧. 不过我觉得最好不要用"资源"角度来理解这个东西.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马