Java final关键字使用及类成员变量初始化和默认值

简介
Java中,final 关键字有几种使用方式,主要用于表示不可改变的。对于类成员变量的初始化和默认值,本文主要介绍Java中final关键字使用的一些特殊情况,类成员变量和变量默认值。

1、类成员变量和默认值

private static Object x;
public static void main(String[] args) {
    System.out.println(x); // Prints 'null'
}

没有明确地指定一个值x,默认值是null

注意:变量的初始值,每个类变量,实例变量或数组组件在创建时都使用默认值进行初始化。

上面情况不适用于局部变量,例如下面的示例:

public static void main(String[] args) {
    Object x;
    System.out.println(x);
    // 编译时错误:
    // 变量x可能没有初始化
}

2、 final变量

变量可以声明为finalfinal变量只能赋值一次。如果final变量被赋值,那么它就是编译时错误,除非它在赋值之前确实没有被赋值。

例子,

public static void main(String[] args) {
    System.out.println("After: " + X);
}
private static final long X = assign();
private static long assign() {
    // Access the value before first assignment
    System.out.println("Before: " + X);
    return X + 1;
}

上面代码输出:

Before: 0
After: 1

final变量初始化之后,就不能再赋值,例如,

private static long assign() {
    // final变量X赋值
    X = 1;
    // 方法之后的第二个赋值将崩溃
    return X + 1;
}

final变量自引用初始化

private static final long X = X + 1;
// 编译时错误:
// self-reference in initializer

了解更多分析及数据抓取可查看:
http://data.yisurvey.com:8989/
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值