博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java8-1 final
阅读量:4361 次
发布时间:2019-06-07

本文共 1050 字,大约阅读时间需要 3 分钟。

1、

final可以修饰类,方法,变量
特点:
final可以修饰类,该类不能被继承。
final可以修饰方法,该方法不能被重写。(覆盖,复写)
final可以修饰变量,该变量不能被重新赋值。因为这个变量其实常量。
常量:
A:字面值常量
"hello",10,true
B:自定义常量
final int x = 10;

2、面试题:final修饰局部变量的问题

基本类型:基本类型的值不能发生改变。
引用类型:引用类型的地址值不能发生改变,但是,该对象的堆内存的值是可以改变的。

1 class age{ 2 int age = 10; 3 } 4  5  6 class FinalTest2 { 7 public static void main(String[] args) { 8 final age num = new age(); 9 System.out.println(num.age);10 11 num.age = (20); //这里改变的只是age这个地址里面的元素,而age的地制值没有改变,也无法改变12 System.out.println(num.age);13 14 //num = new age(); 这个是重新给age分配地址值,而final修饰了age,所以错误。15 }16 17 }

 

3、inal修饰变量的初始化时机
A:被final修饰的变量只能赋值一次。
B:在构造方法完毕前。(非静态的常量) 静态时,设置变量时直接赋值
例子:

1 class Demo { 2 //int num = 10; 3 //final int num2 = 20; 4  5 int num; 6 final int num2; 7  8 { 9 //num2 = 10;10 }11 12 public Demo() {13 num = 100;14 //无法为最终变量num2分配值15 num2 = 200;16 }17 }18 19 class FinalTest2 {20 public static void main(String[] args) {21 Demo d = new Demo();22 System.out.println(d.num);23 System.out.println(d.num2);24 }25 }26 27

 

转载于:https://www.cnblogs.com/LZL-student/p/5858785.html

你可能感兴趣的文章
Ubuntu下安装mysql与mysql workbench
查看>>
HDOJ1251解题报告【字典树】
查看>>
java 字符串zlib压缩/解压
查看>>
httpclient新旧版本分割点4.3
查看>>
实现小数据量和海量数据的通用分页显示存储过程
查看>>
JPEG文件结构
查看>>
jquery api 笔记(2) 事件 事件对象
查看>>
10.17NOIP模拟赛
查看>>
Opus 和 AAC 声音编码格式
查看>>
探索Split函数第三位参数的用法
查看>>
应用程序无法启动,因为应用程序的并行配置不正确
查看>>
Python单元测试——unittest
查看>>
The document cannot be opened. It has been renamed, deleted or moved.
查看>>
ios中@class和 #import,两种方式的讨论
查看>>
OpenStack,ceph
查看>>
Odoo 8.0 new API 之Environment
查看>>
页面传值中get和post区别
查看>>
PHP-CGI漏洞成因原理剖析和利用
查看>>
20145212 罗天晨 《网络对抗》Exp3 Advanced 恶意代码伪装技术实践
查看>>
访问快科技(驱动之家)某个新闻会自动跳转到web.techtoutiao.win
查看>>