介绍一下static关键字

在Java中,被static修饰的成员称为静态成员,static关键字可以用来修饰方法或者成员变量,且被static修饰的方法或者成员变量属于类方法或者类属性,也就是说被static修饰的方法或者成员变量不是单独存储在某一个对象的空间,是被所有该类的所有实例化对象共享的,最好的证明方式就是静态成员变量既可以通过对象来访问,也可以通过类名来访问,一般更推荐后者

其次,对于静态成员变量来说,静态成员变量是在类加载时就被分配内存的,它是存储在JVM中的方法区中

接着针对静态方法来说,在静态方法中不能访问非静态成员变量,且在静态方法中不能访问非静态方法,因为在静态方法中没有this引用

然后就是被static修饰的方法无法实现被重写,不能用来实现多态

还有就是静态成员变量是可以通过静态代码快来进行初始化,而静态代码块是在类加载时初始化的,且只会加载一次,且静态代码快加载的优先级是高于实例代码快的优先级的

最后一个就是在静态内部类中只能访问外部类的静态成员方法或者静态成员变量

相关推荐
yaoxin5211235 小时前
434. Java 日期时间 API - Period 基于日期的时间段
java·开发语言·python
何极光6 小时前
IDEA集成Maven
java·maven·intellij-idea
程序员二叉6 小时前
【JUC】ThreadLocal底层原理|内存泄漏|弱引用|跨线程传递方案
java·开发语言·面试·职场和发展·juc
程序员二叉6 小时前
【JUC】线程池全套深度详解|参数|流程|拒绝策略|调优|异常处理
java·开发语言·jvm·算法·面试·juc
老马识途2.06 小时前
在AI的帮助下理解spring的启动过程
java·前端·spring
青山木6 小时前
Hot 100 --- 轮转数组
java·数据结构·算法
Qt程序员7 小时前
掌握 Linux 内核调度:从原理到实现(进程篇)
java·开发语言
code bean7 小时前
【LangChain】检索器完全指南:从向量检索到生产级 RAG 架构
java·开发语言·微服务
大白菜和MySQL7 小时前
java应用排查高线程
java·python
KobeSacre7 小时前
ReentrantLock源码
java