每天一个面试题之final在java中有什么作用?

简介: 每天一个面试题之final在java中有什么作用?

final在java中有什么作用?

final关键字表示最终的含义

当它用来修饰一个引用时:

<1>:如果引用为基本数据类型,则该引用为常量,该值无法被修改。

<2>:如果引用为引用数据类型,例如,对象/数组等,那么该对象或数组本身可以进行修改,但是指向该对象数

举例:

<3>:如果引用的是类的成员变量,那么它必须在以下几种情况中的至少一种进行初始化:
1:在创建时,进行初始化
2:在类的构造方法中进行初始化
3:在实例化块中进行初始化
4:作为静态成员变量,在静态块中进行初始化
上述三种情况未有至少一种进行,则会直接报错,如下所示:

在声明时,进行初始化:

public class Student {
   final String name="张三";
}

在类的构造方法中进行初始化:

public class Student {
   final String name;
    public Student(String name) {
        this.name = name;
    }
}

在实例化块中进行初始化:

public class Student {
   final String name;
    {
        name="张三";
    }
}

作为静态成员变量,在静态块中进行初始化:

public class Student {
   final static String name;
   static  {
        name="张三";
    }
}

当它用来修饰一个方法:

被final修饰的方法称为最终方法无法被子类重写,但是,该方法仍然可以被继承

举例:

public class Person {
    final  public  void show() {
        System.out.println("我是小猪佩奇");
    }
}

当它用来修饰一个类时:

被final修饰的类为最终类,无法被继承,比如我们最常见的String类

相关文章
|
2月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
2月前
|
Java C++
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
这篇文章讨论了Java单继承的设计原因,指出Java不支持多继承主要是为了避免方法名冲突等混淆问题,尽管Java类不能直接继承多个父类,但可以通过接口和继承链实现类似多继承的效果。
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
|
2月前
|
XML 存储 JSON
【IO面试题 六】、 除了Java自带的序列化之外,你还了解哪些序列化工具?
除了Java自带的序列化,常见的序列化工具还包括JSON(如jackson、gson、fastjson)、Protobuf、Thrift和Avro,各具特点,适用于不同的应用场景和性能需求。
|
2月前
|
Java
【Java基础面试三十七】、说一说Java的异常机制
这篇文章介绍了Java异常机制的三个主要方面:异常处理(使用try、catch、finally语句)、抛出异常(使用throw和throws关键字)、以及异常跟踪栈(异常传播和程序终止时的栈信息输出)。
|
2月前
|
Java
【Java基础面试三十八】、请介绍Java的异常接口
这篇文章介绍了Java的异常体系结构,主要讲述了Throwable作为异常的顶层父类,以及其子类Error和Exception的区别和处理方式。
|
2月前
|
Java
【Java基础面试十六】、Java中的多态是怎么实现的?
这篇文章解释了Java中多态的实现机制,主要是通过继承,允许将子类实例赋给父类引用,并在运行时表现出子类的行为特征,实现这一过程通常涉及普通类、抽象类或接口的使用。
|
2月前
|
缓存 Java
【IO面试题 一】、介绍一下Java中的IO流
Java中的IO流是对数据输入输出操作的抽象,分为输入流和输出流,字节流和字符流,节点流和处理流,提供了多种类支持不同数据源和操作,如文件流、数组流、管道流、字符串流、缓冲流、转换流、对象流、打印流、推回输入流和数据流等。
【IO面试题 一】、介绍一下Java中的IO流
|
2月前
|
存储 安全 Java
这些年背过的面试题——Java基础及面试题篇
本文是技术人面试系列Java基础及面试题篇,面试中关于Java基础及面试题都需要了解哪些内容?一文带你详细了解,欢迎收藏!
|
2月前
|
Java 编译器 开发工具
JDK vs JRE:面试大揭秘,一文让你彻底解锁Java开发和运行的秘密!
【8月更文挑战第24天】JDK(Java Development Kit)与JRE(Java Runtime Environment)是Java环境中两个核心概念。JDK作为开发工具包,不仅包含JRE,还提供编译器等开发工具,支持Java程序的开发与编译;而JRE仅包含运行Java程序所需的组件如JVM和核心类库。一个简单的&quot;Hello, World!&quot;示例展示了两者用途:需借助JDK编译程序,再利用JRE或JDK中的运行环境执行。因此,开发者应基于实际需求选择安装JDK或JRE。
41 0
|
2月前
|
XML SQL Java
下一篇
无影云桌面