如何掌握静态关键字

介绍

本篇内容介绍了”如何掌握静态关键字”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

"哥,一周过去了,教妹学Java你都没有更新,偷懒了呀!“三妹关心地问我。

"今天就更新。”我面带着微笑对三妹说,“学习可不能落下,今天我们来学Java中静态关键字吧。”

"静态是Java中比较难以理解的一个关键字,也是各大公司的面试官最喜欢问到的一个知识点之一。“我喝了一口咖啡继续说道。

"既然是面试重点,那我可得好好学习下。“三妹连忙说。

"静态,关键字的作用可以用一句话来描述:,只要方便在没有创建对象的情况下进行调用,包括变量和方法,,,也就是说,只要类被加载了,就可以通过类名进行访问。“我扶了扶沉重眼镜,继续说到,“静,可以用来修饰类的成员变量,以及成员方法。我们一个个来看。”

01,静态变量

"如果在声明变量的时候使用了静态,关键字,那么这个变量就被称为静态变量。静态变量只在类加载的时候获取一次内存空间,这使得静态变量很节省内存空间。“家里的暖气有点足,我跑去开了一点窗户后继续说道。

"来考虑这样一个学生类。”话音刚落,我就在键盘上噼里啪啦一阵敲。

公开课学生{字符串名称;int年龄;字符串学校=爸V荽笱А?}

这段代码敲完后,我对三妹说:“假设郑州大学录取了一万名新生,那么在创建一万个学生对象的时候,所有的字段(姓名、年龄和,学校)都会获取到一块内存。学生的姓名和年纪不尽相同,但都属于郑州大学,如果每创建一个对象,学校,这个字段都要占用一块内存的话,就很浪费,对吧?三妹。”

"因此,最好将学校这个字段设置为静态的,这样就只会占用一块内存,而不是一万块。”

安静的房子里又响起了一阵噼里啪啦的键盘声。

公开课学生{字符串名称;int年龄;静态字符串学校=爸V荽笱А?,公共学生(字符串名称,int年龄){this.name=名称;这一点。年龄=年龄;},公共静态void main (String [] args){学生s1=新学生(“沉默王二“,18);,学生s2=新学生(“沉默王三“,16);}}

"瞧,三妹.s1和s2这两个引用变量存放在栈区(栈),沉默王二+ 18这个对象和沉默王三+ 16这个对象存放在堆区(堆),学校,这个静态变量存放在静态区。”

"等等,哥,栈,堆,静态区?“三妹的脸上塞满了疑惑。

"哦哦,别担心,三妹,画幅图你就全明白了。”说完我就打开画。io这个网址,认真地画起了图。

如何掌握静态关键字

"现在,是不是一下子就明白了?”看着这幅漂亮的手绘图,我心里有点小开心。

"哇,哥,惊艳了呀!“三妹也不忘拍马屁,给我了一个大大的赞。

"好了,三妹,我们来看下面这串代码。”

公共类计数器{int数=0;计数器(){计数+ +;,System.out.println(数);}公共静态void main (String参数[]){计数器c1,=new计数器();计数器c2=new计数器();计数器c3=new计数器();}}

"我们创建一个成员变量统计,并且在构造函数中让它自增,因为成员变量会在创建对象的时候获取内存,因此每一个对象都会有一个计数的副本,,计数的值并不会随着对象的增多而递增。”

我在侃侃而谈,而三妹似乎有些不太明白。

"没关系,三妹,你先盲猜一下,这段代码输出的结果是什么?"

"按照你的逻辑,应该输出三个1 ?是这样吗?“三妹眨眨眼,有点不太自信地回答。

"哎呀,不错哟。”

我在想法中点了一下运行按钮,程序跑了起来。

111

"每创建一个计数器对象,计数的值就从0自增到1。三妹,想一下,如果数是静态的呢?"

"我不知道啊。”

"嗯,来看下面这段代码。”

公共类StaticCounter{静态int数=0;StaticCounter(){计数+ +;,System.out.println(数);}公共静态void main (String参数[]){,StaticCounter c1=new StaticCounter ();StaticCounter c2=new StaticCounter ();,StaticCounter c3=new StaticCounter ();}}

"来看一下输出结果。”

123

"简单解释一下哈,由于静态变量只会获取一次内存空间,所以任何对象对它的修改都会得到保留,所以每创建一个对象,计数的值就会加1,所以最终的结果是,3,明白了吧?三妹。这就是静态变量和成员变量之间的差别。”

"另外,需要注意的是,由于静态变量属于一个类,所以不要通过对象引用来访问,而应该直接通过类名来访问,否则编译器会发出警告。”

如何掌握静态关键字