final 在 java 中有什么作用?面试篇(第四天)

简介: 本文为大家介绍final 在 java中起到的作用。

初级回答:


final修饰的值不能改变。


中级回答:


final可以修饰在变量上。


final可以修饰在方法上。


final可以修饰在类上。


高级回答:


final是修饰符,类似于public、private这种的修饰符号。


final是关键字,类似于static等关键字,关键字是不可以当做变量名称、方法名、类名的,如图。


23.png


final修饰在变量上分为基本数据类型和引用数据类型两种情况。


1、final修饰在基本数据类型例如String、int上,那么他们的值是不可以改变的。如图。


24.png


2、final修饰在引用数据类型例如对象上,那么他的属性值可以变,但是对象值不能变,就是属性可以随意赋值,但是不可以将一个对象进行赋值。如图。


25.png


3、final修饰在方法上不可以被重写,例如父类有final修饰的方法,那么子类不可以重写这个方法,现在new一个父类Person写两个方法,一个被final修饰,一个不被final修饰,再写一个子类Student继承Person类,然后重写两个方法,如图。


26.png


27.png


4、final修饰在类上不能被继承,现在我们把final修饰在父类Person上,然后使用子类Studnet继承它,如图。


28.png


29.png


隐藏知识点



使用final修饰的变量、方法、类等使用的时候效率比较高,因为不需要去二次寻址了,调用的时候效率比较高,下面我们进行一个测试,我们使用两个for循环,循环10亿10亿次,循环中调用变量的长度,如图;


30.png


image.png


我们可以看到,在使用final修饰的变量,调用10亿10亿次,时间在1秒内,而调用不使用final修饰的变量的时候时间大约在两秒,这是大量测试过的不是偶然结果,为什么用两个for循环就是因为执行太快一个for循环看不出差距,两个for循环刚刚可以看出差距。




相关文章
|
3天前
|
Java 数据库连接 数据库
spring--为web(1),富士康java面试题整理
spring--为web(1),富士康java面试题整理
|
3天前
|
移动开发 前端开发 JavaScript
Java和web前端,IT新人该如何选择?,2024年最新Web前端内存优化面试
Java和web前端,IT新人该如何选择?,2024年最新Web前端内存优化面试
|
3天前
|
安全 Java 数据库
Spring boot 入门教程-Oauth2,java面试基础题核心
Spring boot 入门教程-Oauth2,java面试基础题核心
|
3天前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
3天前
|
算法 Java C++
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
|
4天前
|
设计模式 算法 Java
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
|
4天前
|
存储 网络协议 前端开发
es集群安装,邮储银行java面试
es集群安装,邮储银行java面试
|
4天前
|
消息中间件 JSON Java
十五,java高级程序员面试宝典
十五,java高级程序员面试宝典
|
4天前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
|
4天前
|
Java 数据库连接 数据安全/隐私保护
springBoot集成token认证,最全Java面试知识点梳理
springBoot集成token认证,最全Java面试知识点梳理