java8-1 final
2024-10-15 23:47:14
1、
final可以修饰类,方法,变量
特点:
final可以修饰类,该类不能被继承。
final可以修饰方法,该方法不能被重写。(覆盖,复写)
final可以修饰变量,该变量不能被重新赋值。因为这个变量其实常量。
常量:
A:字面值常量
"hello",10,true
B:自定义常量
final int x = 10;
2、面试题:final修饰局部变量的问题
基本类型:基本类型的值不能发生改变。
引用类型:引用类型的地址值不能发生改变,但是,该对象的堆内存的值是可以改变的。
class age{
int age = 10;
} class FinalTest2 {
public static void main(String[] args) {
final age num = new age();
System.out.println(num.age); num.age = (20); //这里改变的只是age这个地址里面的元素,而age的地制值没有改变,也无法改变
System.out.println(num.age); //num = new age(); 这个是重新给age分配地址值,而final修饰了age,所以错误。
} }
3、inal修饰变量的初始化时机
A:被final修饰的变量只能赋值一次。
B:在构造方法完毕前。(非静态的常量) 静态时,设置变量时直接赋值
例子:
class Demo {
//int num = 10;
//final int num2 = 20; int num;
final int num2; {
//num2 = 10;
} public Demo() {
num = 100;
//无法为最终变量num2分配值
num2 = 200;
}
} class FinalTest2 {
public static void main(String[] args) {
Demo d = new Demo();
System.out.println(d.num);
System.out.println(d.num2);
}
}
最新文章
- Glide实现圆角和圆形图片
- pdf拆分与合并
- Hql 中 dao 层 以及daoimpl 层的代码,让mvc 模式更直观简洁
- C++学习之路——1.linux下环境搭建
- jira的使用
- 百度 WebUploader 简单入门示例
- MSP430F149学习之路——蓝牙模块
- android直接读取数据库文件
- IP分片和TCP分片 MTU和MSS(转)
- form.Show()和form.ShowDialog()的区别、新建一个form和MessageBox.Show()的常见用法
- 我的学习之路_第二十五_javaScript
- MongoDB副本集模式安装
- Centos7 启动指定docker容器报错
- padding设置和清除
- 开发“todolist“”项目及其自己的感悟
- eclipse安装插件配置Android开发环境
- [Unity算法]A星寻路(一):基础版本
- Intellij IDEA Debug调试技巧
- Mysql Server系统架构介绍
- C#.NET常见问题(FAQ)-list比数组效率低多少
热门文章
- [Xamarin.Android] 自定义控件
- [Architecture Design] CLK Architecture
- IOS网络编程之请求内容
- 数码管问题(c++实现)
- swift学习笔记之-闭包
- 3种 web 会话管理的方式
- jquery对javascript事件的封装一览
- Disconnected: No supported authentication methods available (server sent: publickey)
- Android直方图递增View
- Stack与Heap的区别