加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java基础(9) - 静态、代码块

发布时间:2020-12-15 07:50:56 所属栏目:Java 来源:网络整理
导读:关键字 加载顺序 、类初始化 、方法区、进程 存在作用: 变量 - 全局共享 (跨线程,但不支持跨进程) 方法 - 不用类实例就能直接使用,避免New的消耗。(为什么静态方法不能访问非静态变量) 代码块 - 静态块在类初始化就运行 ,初始化顺序 静态代码块 - 普通
关键字
加载顺序 、类初始化 、方法区、进程

存在作用:
变量 -> 全局共享 (跨线程,但不支持跨进程)
方法 -> 不用类实例就能直接使用,避免New的消耗。(为什么静态方法不能访问非静态变量)
代码块 -> 静态块在类初始化就运行 ,初始化顺序 静态代码块 -> 普通代码块 -> 构造方法 -> 普通方法,代码块只会初始化一次
导包 -> 静态导包,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法,更加方便。

类加载:
?

静态属性和非静态属性的区别:
1、内存中存放位置不同:static修饰的属性和方法存在方法区里,而非静态存在堆内存中
2、生命周期不一样,静态属性和方法在类初始化的时候初始化,在类消失后被销毁。而非静态要在创建对象才存在,对象销毁后销毁。
3、静态属性是整个类都公用的
4、用法:静态的可以直接通过类名访问,非静态只能通过对象进行访问
5、静态方法: 子类不能重写父类静态方法,如重名父类方法会被隐藏。

参照:
静态特点:https://blog.csdn.net/weixin_43821892/article/details/90054868
静态jvm何时初始化:https://www.cnblogs.com/ivanfu/archive/2012/02/12/2347817.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读