news 2026/2/9 2:07:21

Java静态与终极:static和final详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java静态与终极:static和final详解

好的!下面用简单易懂的方式解释 Java 中的staticfinal关键字:


1.static关键字

static表示"静态的",用于修饰成员(变量、方法、代码块)。它意味着该成员属于类本身,而不是类的某个实例。

特点
  1. 静态变量

    • 所有实例共享同一个静态变量。
    • 通过类名.变量名直接访问。
    class Student { static String school = "清华大学"; // 所有学生共享学校名称 } // 使用 System.out.println(Student.school); // 输出"清华大学"
  2. 静态方法

    • 可直接通过类名.方法名()调用。
    • 不能访问非静态成员(因为不依赖实例)。
    class MathUtils { static int add(int a, int b) { return a + b; } } // 使用 int result = MathUtils.add(3, 5); // 输出8
  3. 静态代码块

    • 在类加载时执行一次,用于初始化静态资源。
    class Database { static { System.out.println("加载数据库驱动..."); } }

2.final关键字

final表示"不可改变的",用于修饰变量、方法或类。

特点
  1. final变量

    • 基本类型:值不可修改(常量)。
    • 引用类型:引用不可变(但对象内部状态可能可变)。
    final double PI = 3.14159; // 常量 final List<String> list = new ArrayList<>(); list.add("Java"); // 允许!因为list引用不变,但内容可变 // list = new ArrayList<>(); // 错误!引用不可重新赋值
  2. final方法

    • 方法不能被重写(子类不能修改)。
    class Parent { final void print() { System.out.println("不能重写我!"); } } class Child extends Parent { // void print() { ... } // 编译错误! }
  3. final

    • 不能被继承
    final class StringUtils { ... } // class SubUtils extends StringUtils { ... } // 错误!

3.static final组合

  • static final修饰的变量是全局常量,通常用大写命名。
  • 例如 Java 中Integer.MAX_VALUE
    public static final int MAX_VALUE = 2147483647;

总结对比

关键字作用目标核心意义
static变量、方法、代码块共享(属于类,不依赖实例)
final变量、方法、类不可变(常量、不可重写、不可继承)

通过合理使用这两个关键字,能更好地控制代码的灵活性与安全性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 11:20:12

惊艳!提示工程架构师给出提示注入攻击防范新思路

惊艳&#xff01;提示工程架构师给出提示注入攻击防范新思路 关键词&#xff1a;提示工程、提示注入攻击、防范思路、大语言模型、安全机制、对抗训练 摘要&#xff1a;本文深入探讨了由提示工程架构师提出的提示注入攻击防范新思路。首先介绍提示工程的领域背景及提示注入攻…

作者头像 李华
网站建设 2026/2/8 12:05:44

JavaScript DOM操作实战:从入门到精通

JavaScript DOM 核心操作&#xff1a;从内容到节点的实战指南 一、内容操作 文本内容 textContent&#xff1a;获取或设置元素的纯文本内容 const element document.getElementById("demo"); console.log(element.textContent); // 获取内容 element.textContent …

作者头像 李华
网站建设 2026/2/3 17:20:48

linux genpool 学习

一、背景与引入在 Linux 内核中&#xff0c;内存管理并不只局限于伙伴系统&#xff08;buddy allocator&#xff09;和 slab/slub 分配器。在许多设备驱动、SoC 子系统以及共享内存场景中&#xff0c;开发者往往需要管理一块地址固定、大小有限、分配规则特殊的内存区域&#x…

作者头像 李华
网站建设 2026/2/5 21:19:16

Github源码推荐 | Prometheus:让自主无人机开发更简单、更高效!

在无人机开发领域&#xff0c;从飞控底层到上层应用的跨越往往面临着巨大的技术门槛。如何快速验证算法&#xff1f;如何平滑地从仿真过渡到真机&#xff1f; 今天为大家介绍一款由阿木实验室&#xff08;Amov Lab&#xff09; 维护的重磅开源项目——Prometheus。 &#x1f31…

作者头像 李华
网站建设 2026/2/7 10:00:54

jQuery Mobile 表单选择

jQuery Mobile 表单选择 引言 jQuery Mobile 是一款流行的前端框架,它使得开发跨平台移动应用变得简单快捷。在移动应用中,表单是用户与应用交互的主要方式之一。而表单选择(Select)是表单中常见的控件,用于让用户从一系列选项中选择一个或多个值。本文将详细介绍 jQuer…

作者头像 李华