问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java中可以直接调用类中静态方法,为什么不用实例化?它的原...20

发布网友 发布时间:2024-02-08 22:30

我来回答

1个回答

热心网友 时间:2024-03-04 21:30

好吧,我来试试看,看答案能不能够让你满意。
先通俗的分析下,我们把类看作是一个房子。房子里面有家具,桌椅板凳之类的,房子里面还有人。
房子里面所有的人都应该是共有一套家具的。也就是说,这些家具是唯一的,如果某个家具坏了,那么大家都用不了。
我们再看一看定义,java的静态变量也叫做类变量,它开始于类的创建,结束于类的消亡。非静态变量叫做实例变量,它开始于类的实例的创建,结束语类的实例的消亡。静态变量被所有实例所共享。也就是如上面的例子,座椅板凳是类变量,它们是在房子被建好了之后就被添加放置进来,而且基本都是唯一的。人就相当于实例,每个人都能用这些家具,但是如果家具一旦损坏,那就是坏了,或者你把某一个家具搬走,那么所有的人都用不了这个家具,房子里也不存在这个家具了。
但是房子里可以进很多人,可以进张三,也可以进李四。所以这些人就是类的实例对象,他们身上穿的衣服就可以叫做实例变量。
那么在内存之中又是如何的呢?当一个类被创建并初始化后,内存中会有两个区域,栈区和堆区。栈中主要存放的是引用变量,堆中主要存放的是真实的被实例化后的类。栈中的引用变量会指向堆中的真实对象地址。比如A a=new A(); a这个变量就会在栈中,实际被new出来的类A的对象会放在堆中,a指向实际被new出来的A对象。
如果一个类中有静态变量的话,程序首先会把该静态变量加载进内存中,也就是在堆中开辟一个区域专门存放。以后不管你new多少个类的对象,该静态变量永远都是在那里的。也就是说,静态变量在类的初始化一次后,系统就不会为该变量开辟新的内存空间。而每new一个类的对象,系统就会重新在
堆内存中开辟一个新空间来存放该类的实例对象,并且栈中也会有一个新的引用变量去指向它。
静态方法也是类似,但是有一点要强调,静态方法只中不能调用非静态方法。因为被static修饰的方法会首先被Classloader对象先加载进内存,而这个时候可能其它的非静态方法或者变量还没有被加载进来。就好比我现在想做包子,现在面粉被static修饰,首先已经拿到你身边,可是因为包子馅不是static修饰的,所以可能包子馅儿还没运过来,你说怎么做的出包子呢。
被static修饰过的都是随着类的初始化后就产生了,在堆内存中都有一块专门的区域来存放,所以只需要类名点方法名或者变量名即可。而非静态的就必须通过类的对象去调相应的。就像是你想要红色的衣服,你必须是从穿红色的衣服的人的身上拿过来才行,所以你必须找到穿红色衣服的人,也就是类的实例对象,而你如果要去找一个桌子,而桌子就在房间里摆着,你只要进到房间里直接走过去拿来就可以了~~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 java中类可以直接调用方法吗2 丽水为美钢制家具有限公司怎么样? 化学实验室想买个柜子放药品,不知道应该买铁的还是不锈钢的呢? 光纤转有线视频信号怎么做3 《武林立志传》为什么每次战斗得血量都不一样?而且差得很离谱 武林立志传好玩吗? 关于武林立志传1.06,是不是打死冷无霜就爆机了,怎么进入二周目?_百度... 如果一家医院住院没出院可以去另一家医院住院吗?出了问题办不了出院的... 豚鼠能过车站的安检吗? ...却每天和她男朋友秀恩爱,故意发给我看,一天也要进我空间十几?_百度... 华为P50怎样模拟门禁卡? 郴州市2021年高一有多少学生 微信与qq绑定,若注销,qq号会不会有影响 微信与qq绑定,若注销,qq号会不会有影响? 微信不能解绑QQ号,能把注销,QQ就就解绑了吗? 做监控用什么样的光纤2 第一次用光纤布线做监控,小区的28个点,请问何用视频线做监控...52 白雾村的地理交通 白雾村的饮食风俗 亚叶酸钙片简介 为什么java中父类中的有些方法可以在子类中直接调用,而有的...35 java中为什么静态类可以直接调用方法?6 java中为什么static的属性或方法可以被类直接调用啊22 java类中可以不创建对象直接调用方法吗6 java中同一个类中的方法可以互相访问么6 马来西亚第二家园申请者算华侨吗? 弟媳妇用一个字概括可以用什么?简单易懂的 两边木树树,中间丫雀窝,大伯子张着跨,弟媳妇伸手去摸,猜一个字 圣路易斯华盛顿大学怎么样? 乐山镇的资源优势 土地确权人员称呼:如户主的兄嫂、弟媳添什么关系? 弟媳设置不让我看他的朋友圈,我是不是也应该设置不让她看? 弟媳生了个女儿该怎么发朋友圈 怎样让鲜花活的更久?6 怎么养才能让鲜花活得更久点?429 怎么养才能让鲜花活得更久点?7 澳洲的可持续发展周 如何避免经销商的价格竞争,维护品牌形象? 如何形象生动地解释铁路货运费用的发到基价和运行基价?2 开关电源模块 CQ0765RT 的3脚无电压了 上拉到电源的启动电阻我也测量过...