static在Java语言中的作用

### static在Java语言中的作用 #### 一、概述 `static`关键字在Java语言中具有重要作用,主要用于定义静态成员变量、静态方法、静态代码块以及静态内部类等。使用`static`关键字可以使某些属性和方法独立于类的实例存在,从而达到节省资源、提高效率的目的。下面将详细探讨`static`在不同场景下的应用。 #### 二、static变量 ##### 1. 静态变量(类变量) - **定义**:被`static`修饰的变量称为静态变量或类变量。 - **特点**: - 内存中只有一个拷贝,节省内存空间。 - 在类加载过程中,JVM只为其分配一次内存。 - 可以通过类名直接访问,也可以通过对象访问(但不推荐)。 - **应用场景**:通常用于存储不会随对象实例变化的常量信息,如配置参数等。 ##### 2. 实例变量 - **定义**:未被`static`修饰的变量称为实例变量。 - **特点**: - 每创建一个对象实例,就会为其实例变量分配一次内存。 - 可以在内存中有多个拷贝,且互不影响。 - **应用场景**:通常用于存储随着对象状态变化的数据。 #### 三、静态方法 - **定义**:被`static`修饰的方法称为静态方法。 - **特点**: - 可以直接通过类名调用。 - 不使用`this`和`super`关键字,不能直接访问所属类的实例变量和实例方法。 - 必须实现,不能是抽象的。 - **应用场景**: - 工具类提供的公共方法,如数学运算、字符串处理等。 - 类的初始化操作,如数据库连接的建立。 #### 四、静态代码块 - **定义**:在类中独立于成员的`static`语句块。 - **特点**: - JVM加载类时执行。 - 多个静态代码块按出现顺序依次执行。 - 每个静态代码块只执行一次。 - **应用场景**: - 初始化静态变量。 - 执行类级别的初始化操作。 - 示例代码: ```java public class Test { private static int a; static { a = 3; System.out.println(a); } static { a = 4; System.out.println(a); } public static void main(String[] args) { // 输出结果为: // 3 // 4 } } ``` #### 五、静态内部类 - **定义**:被`static`修饰的内部类。 - **特点**: - 创建静态内部类的对象时,不需要外部类的对象。 - 不能从静态内部类的对象访问外部类的对象。 - **应用场景**: - 提供更细粒度的封装。 - 作为工具类提供静态工厂方法。 - **示例**: ```java public class Parcel10 { protected static class PDestination implements Destination { private String label; private PDestination(String whereTo) { label = whereTo; } public String readLabel() { return label; } } public static Destination dest(String s) { return new PDestination(s); } } ``` ### 总结 `static`关键字在Java中用于定义静态属性和方法,有助于优化程序性能和资源管理。通过了解`static`的多种用途,开发者可以更好地设计高效、优雅的Java应用程序。






























剩余6页未读,继续阅读

- Ericz2013-06-03举例说明了static的用法,很实用
- major572012-03-20static的用法说的很全面,还有相应的例子!!很有参考价值!

- 粉丝: 11
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- C语言程序设计实训题目一.doc
- 《信息化进程中的教育技术发展研究》子课题《网络环境下的中职教育理论与实践探索》研--究--报--告.doc
- 计算机数据库入侵检测技术应用.docx
- 基于单片机的电子钟的方案设计书(1)1.doc
- 网络空间安全新形势下的信息安全人才培养.doc
- 童发发的大模型学习之旅
- 自动化生产设备方案.ppt
- 第一节办公自动化基础知识.ppt
- 全国计算机等级考试二级教程MSOffice高级应用.ppt
- 递进式应用型人工智能专业实践教学体系探究.docx
- 新建供欲提高CAD制图画图速度者参考.doc
- 计算机应用技术期末复习题.doc
- 汽车电子商务课程标准.docx
- 基于PLC多层电梯电气设计与调试正板doc.doc
- 加强高校学生网络安全教育研究.docx
- 基于Hadoop平台的大数据应用系统解决方案.docx


