Java学习笔记 static关键字作用和应用
2023-06-13 09:18:56 时间
static关键字
static是一个修饰符,用于修饰类的成员方法、类的成员变量
1)static修饰成员变量 static变量称作静态变量、类变量。 静态变量和非静态变量的区别是: 一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。而非静态变量是实例对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
2)static修饰成员方法
- 一个类的静态方法只能访问静态属性
- 一个类的静态方法不能直接调用非静态方法
- 如果访问控制权限允许,static属性和方法可以是用类名加“.”的方式调用;当然也可以使用实例加“.”方式调用
- 静态方法中不存在当前对象,因此不能使用this关键字,当然也不能使用super
- 静态方法不能被非静态方法覆盖
- 构造方法不允许声明为static
3)static修饰代码块 static关键字还有一个比较重要的作用就是用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来依次执行每个static块,并且只会执行一次。static块可以优化程序性能,是因为它的特性:只会在类被初次加载的时候执行一次。
4)静态导包 这里在导入时,我们使用了static关键字,而且在引入类的最后还加上了“.*”,它的作用就是将某类中的所有类方法直接导入。不同于非static导入,采用static导入包后,在不与当前类的方法名冲突的情况下,无需使用“类名.方法名”的方法去调用类方法了,直接可以采用"方法名"去调用类方法,就好像是该类自己的方法一样使用即可。 import static com.java.study.PrintHelper. *
总结
static是java中非常重要的一个关键字,而且它的用法也很丰富,主要有四种用法:
- 用来修饰成员变量,将其变为类的成员,从而实现所有对象对于该成员的共享。
- 用来修饰成员方法,将其变为类方法,可以直接使用“类名.方法名”的方式调用,常用于工具类。
- 静态块用法,将多个类成员放在一起初始化,使得程序更加规整,其中理解对象的初始化过程非常关键。
- 静态导包用法,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法,更加方便。
- Java中的static关键字不会影响到变量或者方法的作用域。在Java中能够影响到访问权限的只有private、public、protected(包括包访问权限)这几个关键字。
相关文章
- java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」
- java 把对象转成map_Java对象转换成Map[通俗易懂]
- java数组定义长度_JAVA数组的定义
- 一次性搞清楚,Java并发编程在各主流框架中的应用,保证看懂
- java游戏开发入门教程_JAVA制作游戏入门教程
- java parrallel for,Java 8 parallel forEach进度指示
- 对java面向对象的三大特征的理解_Java面向对象的三大特征是什么?
- java webservice 实例_Java WebService 简单实例(附实例代码)
- java反射 getMethod_JAVA 反射 getMethod() 和 invoke() 具体应用[通俗易懂]
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api
- 【鸿蒙 HarmonyOS】创建 Java 语言 HarmonyOS 手机应用 ( 首次进入 DevEco Studio 配置环境 | 创建 Java 手机工程 | 鸿蒙工程代码目录简介 )
- Java生成读取条形码和二维码图片详解编程语言
- 学习如何使用Linux环境运行Java程序(linux下的java)
- 程序Linux下构建Java应用:从入门到精通(linux下开发java)
- java servlet 生命周期详解编程语言
- 使用Java操作MySQL数据库快速精准查询(java查询mysql数据库)
- 清理使用Java清理Redis中的过期数据(redisjava过期)
- Linux环境中如何顺利执行Java程序?(linux下执行java)
- Linux下Java应用打包实践(linux java打包)
- 数据Java操作MySQL库:获取你所需的数据(java获取mysql)
- Oracle全面支持Java链技术构建数据库应用(java链oracle)
- 在Java中利用Oracle数据库进行应用开发(java中oracle)