首页 > 代码库 > 二、Java基础之final关键字
二、Java基础之final关键字
final变量:
final修饰的变量(成员变量或局部变量),即常量,只能赋值一次,不能再次修改。
final成员变量要么在声明时赋值,要么在构造函数里赋值。
如果变量为引用类型,变量的引用不能修改,但是引用指向的内容是可以被修改的。
final方法:
final修饰的方法不能被子类重写。
final类:
final修饰的类不能被继承。
最典型的例子:String类。因为String是immutable的,所以不能允许其他类继承String,否则其子类会轻易的将其改为mutable。详细参考:https://www.zhihu.com/question/31345592
深入理解final:
- final修饰的常量在编译期间会放到常量池中。举例如下:
String a = "hello2";final String b = "hello";String c = "hello";String d = b+2;String e = c+2;//编译期b是常量,d会直接被编译器优化为hello2System.out.println((a == d));//true//由于b不是常量,编译期不会被优化,在运行时创建新对象System.out.println((a == e));//false
- final修饰的方法,JVM可能会将其转为内联调用而提高运行效率。
- final关键字是保证对象不能被修改,static关键字是保证全局唯一。
- final参数的作用仅仅是让调用方法体内不能重新赋值传参。
二、Java基础之final关键字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。