请问他说静态类可以直接使用是什么意思,举个例子说明最好,我是新手,还望通俗易懂。

如题所述

因为该类的静态方法是程序启动时自动放在内存中了的,是属于程序的公共内存(但只能访问),而类名在这里你可以理解为命名空间。先通俗的分析下,我们把类看作是一个房子。房子里面有家具,桌椅板凳之类的,房子里面还有人。
房子里面所有的人都应该是共有一套家具的。也就是说,这些家具是唯一的,如果某个家具坏了,那么大家都用不了。
我们再看一看定义,java的静态变量也叫做类变量,它开始于类的创建,结束于类的消亡。非静态变量叫做实例变量,它开始于类的实例的创建,结束语类的实例的消亡。静态变量被所有实例所共享。也就是如上面的例子,座椅板凳是类变量,它们是在房子被建好了之后就被添加放置进来,而且基本都是唯一的。人就相当于实例,每个人都能用这些家具,但是如果家具一旦损坏,那就是坏了,或者你把某一个家具搬走,那么所有的人都用不了这个家具,房子里也不存在这个家具了。
但是房子里可以进很多人,可以进张三,也可以进李四。所以这些人就是类的实例对象,他们身上穿的衣服就可以叫做实例变量。
那么在内存之中又是如何的呢?当一个类被创建并初始化后,内存中会有两个区域,栈区和堆区。栈中主要存放的是引用变量,堆中主要存放的是真实的被实例化后的类。栈中的引用变量会指向堆中的真实对象地址。比如A a=new A(); a这个变量就会在栈中,实际被new出来的类A的对象会放在堆中,a指向实际被new出来的A对象。
如果一个类中有静态变量的话,程序首先会把该静态变量加载进内存中,也就是在堆中开辟一个区域专门存放。以后不管你new多少个类的对象,该静态变量永远都是在那里的。也就是说,静态变量在类的初始化一次后,系统就不会为该变量开辟新的内存空间。而每new一个类的对象,系统就会重新在
堆内存中开辟一个新空间来存放该类的实例对象,并且栈中也会有一个新的引用变量去指向它。
静态方法也是类似,但是有一点要强调,静态方法只中不能调用非静态方法。因为被static修饰的方法会首先被Classloader对象先加载进内存,而这个时候可能其它的非静态方法或者变量还没有被加载进来。就好比我现在想做包子,现在面粉被static修饰,首先已经拿到你身边,可是因为包子馅不是static修饰的,所以可能包子馅儿还没运过来,你说怎么做的出包子呢。
被static修饰过的都是随着类的初始化后就产生了,在堆内存中都有一块专门的区域来存放,所以只需要类名点方法名或者变量名即可。而非静态的就必须通过类的对象去调相应的。就像是你想要红色的衣服,你必须是从穿红色的衣服的人的身上拿过来才行,所以你必须找到穿红色衣服的人,也就是类的实例对象,而你如果要去找一个桌子,而桌子就在房间里摆着,你只要进到房间里直接走过去拿来就可以了~~追问

你这个怎么讲的这么好,这么基础,哪里来的啊,能不能共享啊

追答

就是百度的0.0 求采纳 关键还是自己多琢磨,多悟

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-27

追问

感谢你啊,点错了。

我粉你了,还望多多指导

请问他说静态类可以直接使用是什么意思,举个例子说明最好,我是新手,还...
因为该类的静态方法是程序启动时自动放在内存中了的,是属于程序的公共内存(但只能访问),而类名在这里你可以理解为命名空间。先通俗的分析下,我们把类看作是一个房子。房子里面有家具,桌椅板凳之类的,房子里面还有人。房子里面所有的人都应该是共有一套家具的。也就是说,这些家具是唯一的,如果...

如何使用静态方法,类方法或者抽象方法
1、静态方法,又称为可以直接用类名访问的方法,那么什么场景下,它会被用上呢?举个例子,比如说我有一个小功能,这个功能脱离它的宿主也可以使用,那么这个方法就可以写成静态方法。例如:判断一个字符串是不是有效的 2、类方法,又称为必须创建实例化对象后,实例才可以访问的方法。那么,简单的来...

手机wifi设置里的静态ip是什么意思
静态IP是可以直接上网的IP段,该IP在ISP装机时会划分一个IP地址给你,让计算机在连接网络时不再自动获取网络地址,避免了网络连接上的困扰,宽带运营商会提供一根一个IP地址、子网掩码、网关和DNS服务器地址给用户。在未使用路由器的情况下,只需要把这根入户网线连接到电脑上,并且手动设置电脑上的IP地...

初学python,感受和C的不同
1 刚才说了,c是一个静态类型语言,我们可以定义int a, char b等等,但必须是在源代码里面事先规定。比如我们可以在Python里面任意一处直接规定a = “lk”,这样,a的类型就是string,这是在其赋值的时候才决定的,我们无须在代码中明确写出。而在C里面,我们必须显式规定char *a = “lk”,也就是人工事先规定好...

C#里面大量使用静态变量和静态类对性能是提升还是下降?
从编程的原则上讲,主要可以用static function就应该用。从性能方面来讲,static要好,因为在程序执行时不会有大量无用的object的建立和销毁。静态对象不在托管堆上,都在heap。PDA上更应该用static,无需拘泥于object oriented programing。

请各举一个例子说明英语中的主动语态和被动语态,
b.当动词不定式在名词后面作定语,不定式和名词之间有动宾关系时,不定式的主动形式表示被动含义.如: I have a lot of work to do today.我今天有很多工作要做.(work to do指被做的工作) He has three children to look after.他有三个孩子要照看.(children to look after指孩子被照看) 注意:如果以上...

对付嘴贱的人最好的办法是什么
五,远离疯子,避免被疯子伤害。因为疯子也属于这类型垃圾人,虽然他们不懂甚至控制不了自己的行为,但杀伤力是很大的,所以一定要远远地躲开,因为你死了他可不偿命。六,学会宽容。碰到垃圾人,挥挥手,无需介意,继续走自己的路。七,如果职场上遇到垃圾人,如果你能提升自己实力,让自己实力足够强,...

魅族mx手机静态ip怎么设置最好魅族mx手机静态ip怎么设置最好用
魅族mx手机静态ip怎么设置最好_魅族mx手机静态ip怎么设置最好用 如果您有关于魅族mx手机静态ip怎么设置最好的问题,我可以通过我的知识库和研究成果来回答您的问题,并提供一些实用的建议和资源。 1.手机静态ip怎么开? 2.魅族mx怎么设置上网 3.手机wifi静态IP怎么填写啊? 4.手机如何设置静态ip 5.手机怎么设置固定...

什么是木马?
从木马的发展来看,基本上可以分为两个阶段。 最初网络还处于以UNIX平台为主的时期,木马就产生了,当时的木马程序的功能相对简单,往往是将一段程序嵌入到系统文件中,用跳转指令来执行一些木马的功能,在这个时期木马的设计者和使用者大都是些技术人员,必须具备相当的网络和编程知识。 而后随着WINDOWS平台的日益普及,...

求中考语文阅读理解几种经典题型,并说明答题方法。
分析对比论证方法作用,两个方面XX比较,使其对与错更加分明,正确的观点更容易被读者接受。 7如加点词语有什么作用?思路:(1)确定、回答词语在语境中的(表层)含义;(2)词语对表达中心或阐明观点的(深层、比喻或引申)作用;这类题主要考语言的准确周密性和形象生动性。又如词语顺序是否可以颠倒? 8议论文中代词的指代...

相似回答
大家正在搜