博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)java final关键字使用及面试题重点
阅读量:4281 次
发布时间:2019-05-27

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

【转载原因:作者写的很清楚】

【转载原文:】

java final关键字使用及面试题重点

1. 在java中声明类、属性和方法时,可以使用关键字final来修饰,表示“最终的”。

2.java 面试题final关键字知识点,例题

1. 在java中声明类、属性和方法时,可以使用关键字final来修饰,表示“最终的”。

1.final修饰类:(俗称太监类不能有孩子)

提高安全性,提高程序的可读性

这个类就不能被继承。如:String类、StringBuffer类、System类

//class SubString extends String{//	//}final class A{	}//class B extends A{//	//}

2.final修饰方法:(确定下功能,没有被子类重写的必要)

不能被子类重写。如:Object的getClass();功能已经确定下来,就算子类重写了该方法后,也是实现一样的功能,所以没有必要被子类重写。

class C{	public final void method1() {		System.out.println("I am method1");	}}class E extends C{	public void method1() {//		System.out.println("I am method1 for D");//	}}

3.final修饰属性:(已经是常量)

此属性就是一个常量,一旦初始后,不可再被赋值。习惯上,重用大写字符表示。

此常量在哪里赋值:①此常量不能使用默认初始②可以显示的赋值、代码块、构造器
注:显示赋值和代码块赋值只能有其中的一个
变量用static final修饰:全局常量,如Math类的PI

public class Test {	public static void main(String[] args) {		C c = new C();		System.out.println(c.getClass());		System.out.println(Math.PI);	}}class D{//	final  int I;//常量不能使用默认的赋值	final  int I = 11;	final  double PI;	final String NAME;	public void m1(){		System.out.println(I);//		I = 10;	}	{		PI = 3.14;	}	public D() {		NAME = "DD";	}	public D(String name) {		this();//		NAME = "DD";	}}//c

付:后续需要知道final 与 finally finalize()区别

Object.finalize()//辣鸡回收的,显示把内存中对象清理掉

2.java 面试题final关键字知识点,例题

1.排除错误例题一

/* * 错误,调用方法的时候已经对x进行赋值,不能再对其进行++操作。 */public class Something { 	public int addOne(final int x) { 		return ++x; 	}  }

2.排除错误例题一

/* * 正确,因为final修饰的类,但++的却是其对象,说明类属性改变,类不一定跟着改变 */public class Something { 	public static void main(String[] args) { 		Other o = new Other(); 		new Something().addOne(o); 	} 	public void addOne(final Other o) { 		o.i++; 	}  } class Other { 	public int i;}

————————————————

版权声明:本文为CSDN博主「不等风雨,只等你」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34626097/article/details/83388389

你可能感兴趣的文章
《图像处理实例》 之 局部极值提取
查看>>
硬盘读取不了-->>完美解决
查看>>
《图像处理实例》 之 拓扑重建
查看>>
《图像处理实例》 之 寻找图纸标注
查看>>
《图像处理实例》 之 拟合求交点
查看>>
《图像处理实例》 之 填充封闭区域
查看>>
《图像处理实例》 之 疏密程度统计
查看>>
支持向量机(理论+opencv实现)
查看>>
K-means算法(理论+opencv实现)
查看>>
高斯混合模型(理论+opencv实现)
查看>>
VS2015+Python3.5的配置
查看>>
分水岭算法(理论+opencv实现)
查看>>
《图像处理实例》 之 精确寻找一个圆
查看>>
opencv3.1+contrib的配置大总结(配置了两天,遇到问题无数)
查看>>
opencv小问题大智慧
查看>>
《图像处理实例》 之 车牌定位
查看>>
《opencv学习》 之 OTSU算法实现二值化
查看>>
《图像处理实例》 之 答题卡检测
查看>>
图像矩的初步探索(第十一天)
查看>>
《电路学习第一天》 之 电路设计之前的准备
查看>>