【java面试题】static和final关键字之间的区别

在 Java 中,staticfinal 是两个常用的关键字,它们用于不同的目的。以下是它们之间的区别和各自的用途:

static 关键字

  1. 用于类的成员:

    • 静态变量(类变量): 使用 static 声明的变量是类级别的变量,而不是实例级别。所有实例共享同一个静态变量。
    • 静态方法: 使用 static 声明的方法可以不通过实例调用。它们只能访问其他静态成员(变量或方法)。
    • 静态块: 静态代码块用于初始化静态变量,在类加载时执行一次。
  2. 作用域:

    • 属于类本身,而不是某个具体的对象实例。
  3. 用途:

    • 用于实现类级别的功能,例如计数器、实用工具方法(Math 类的 sqrt 方法等)。

示例:

class Example {
    static int counter = 0; // 静态变量

    static void incrementCounter() { // 静态方法
        counter++;
    }

    static { // 静态块
        System.out.println("Static block executed");
    }
}

final 关键字

  1. 用于变量:

    • 常量: 使用 final 声明的变量在初始化后不能改变,表示一个常量。
    • 必须在声明时或构造方法中赋值。
  2. 用于方法:

    • 不可重写: 使用 final 声明的方法不能被子类重写。
  3. 用于类:

    • 不可继承: 使用 final 声明的类不能被继承。
  4. 用途:

    • 提供安全性和性能优化,通过限制修改或继承来确保不变性。

示例:

final class ImmutableClass { // final 类
    final int constantValue = 10; // final 变量

    final void display() { // final 方法
        System.out.println("This is a final method.");
    }
}

总结

  • static 关键字用于定义类级别的成员,无需实例化即可访问。
  • final 关键字用于创建不可修改的变量、不可重写的方法和不可继承的类。

在使用时,staticfinal 可以组合使用,比如定义静态常量:

lass Constants {
    static final double PI = 3.14159; // 静态常量
}

这种组合常用于定义与类相关的不可变常量。

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值