介绍一下static关键字

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

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

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

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

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

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

相关推荐
蒸蒸yyyyzwd4 小时前
cpp对象模型学习笔记1.1-2.8
java·笔记·学习
程序员徐师兄5 小时前
Windows JDK11 下载安装教程,适合新手
java·windows·jdk11 下载安装·jdk11 下载教程
RANCE_atttackkk5 小时前
[Java]实现使用邮箱找回密码的功能
java·开发语言·前端·spring boot·intellij-idea·idea
五岳6 小时前
DTS按业务场景批量迁移阿里云MySQL表实战(下):迁移管理平台设计与实现
java·应用·dts
zhougl9966 小时前
Java 所有关键字及规范分类
java·开发语言
Python 老手6 小时前
Python while 循环 极简核心讲解
java·python·算法
java1234_小锋6 小时前
Java高频面试题:MyISAM索引与InnoDB索引的区别?
java·开发语言
Mr_Xuhhh7 小时前
MySQL函数详解:日期、字符串、数学及其他常用函数
java·数据库·sql
测试开发Kevin8 小时前
小tip:换行符CRLF 和 LF 的区别以及二者在实际项目中的影响
java·开发语言·python
笨手笨脚の8 小时前
Redis: Thread limit exceeded replacing blocked worker
java·redis·forkjoin·thread limit