前言:
今天各位老铁们对“java语言static的作用”大体比较注重,姐妹们都需要学习一些“java语言static的作用”的相关资讯。那么小编同时在网上收集了一些对于“java语言static的作用””的相关资讯,希望看官们能喜欢,咱们一起来学习一下吧!1
适用人群
java程序员、想提高自己的码农、我自己、面试的java程序员
吐槽
哈哈,项目已经上线,短期我又可以休息下,赶紧复习下static
一说static肯定很多人说,这么简单刚毕业的都非常清楚啊。
可现实情况,我问了几个15K的程序员,几个场景结果他们还真不清楚。
知道怎么用,但理解不深入
Java编程思想里的解释总结方便在没有创建对象的情况下来进行调用(方法/变量)类被加载了,就可以通过类名去进行访问static修饰的方法、变量可以编写static代码块来优化程序性能(优点)例子
都说static理解很简单的程序员朋友看看下面的例子吧
案例一
执行结果:
有些程序员朋友可能奇怪,main里面什么都没有,怎么也打印了
原因是执行main方法之前,必须先加载TestStatic类
如果把 new TestStatic(); 注释放开运行结果是这样的
案例二
这个案例如果你很清楚初始化顺序,肯定基础非常扎实
运行结果
我把main位置移动到Son类,输出结果是一样的
这个执行过程比较复杂,一个一个分析下
具体执行过程1. main运行先加载Father类【Father static】,2. new Son()然后会去加载Son类【Son static】,3. Son的父类Father已经加载过了,4. 然后调用构造器Son(),会先初始化父类Father成员变量,Person类初次加载【Person static】,
然后执行构造器的【Person 程序汪汪】
5.父类【Father 构造器】6.【Son 构造器】对象的初始化过程优先级静态成员变量>静态方法>普通成员变量>构造器 【记住规律】父类>子类 【父类的优先子类加载,静态、普通都一样】成员变量>构造器【这个顺序记住吧】案例三
内存简单分析
内存图
age前加个static,其他都不变
输出结果
原因
看图,age从原来的堆变到了静态存储去
参考资料
java编程思想
标签: #java语言static的作用