龙空技术网

Java里static作用,15K的程序员敢说理解的很清楚吗

程序汪汪 2695

前言:

今天各位老铁们对“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的作用