java中final关键字解析

final关键字用法


final 关键字用法:

  • 用法:①不能改变、赋值指定为final的成员变量②不能重写指定为final的方法③不能继承指定为final的类
  • 优势:①final方法在编译阶段绑定,称为静态绑定(static binding),编译时常量,永远不可改变。②jvm在运行的时候,会直接将final方法直接嵌进来,效率会大大提升。JVM和Java应用都会缓存final变量,以提高性能。③final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
package com.interview.javabasic.attributesKeyWord;
import java.util.Random;

import static java.lang.Math.max;
import static java.lang.System.out;

/**
 * @program: javabasic
 * @description: 1.static关键字导入静态成员
 *                 2.final 关键字用法:
 *                 ①不能改变、赋值指定为final的成员变量②不能重写指定为final的方法③不能继承指定为final的类
 * @author: liujiang
 * @create: 2019-11-29 03:54
 **/
class Test{
    int i = 0;
        }
public class Finalkeyword {

    static Random random = new Random();

    private final int VALUE_1=9;    //声名一个final常量

    private int VALUE_3;

    private static final int VALUE_2=10;    //声名一个final、static常量

    private final Test test = new Test();   //声名一个final引用

    private Test test2 = new Test();    //声名一个普通引用

    private final int[] a = {1,2,3,4,5,6};  //声名一个final的数组

    private final int  i4 = random.nextInt(20);

    //i5与i4的不同,在内存中为i5开辟了一个恒定不变的区域,只初始化一次
    // 当再次实例化所属类对象Finalkeyword时,仍然指向i5这块内存区域
    private static final int i5 = random.nextInt(20);

    @Override
    public String toString() {
        return i4 + "" + i5;
    }
    

    public static void main(String[] args) {
        out.println("1和4较大的值为: " + max(1,4));
        Finalkeyword finalkeyword =new Finalkeyword();
        //finalkeyword.VALUE_1++;   不能改变、赋值指定为final的常量

        int t= finalkeyword.VALUE_2;
        finalkeyword.VALUE_3=4;

        //finalkeyword.test= new Test();    不能将定义为final的引用指向其他引用
        finalkeyword.test2 = new Test();    //可以将没定义为final的引用指向其他引用

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值