今天面试做了一道这样的题目

public void test(final int[] args){
		if(args.length>1){
			args[0]=5;
		}
	}  

询问这段代码有没有出题。

这段代码是可以通过测试的,并没有问题。

final在修饰引用数据类型的时候,是指变量的引用不能改变,但是可以对这个引用的内容进行修改,所以上文的代码是正确的。而下面是错误的说法。

public void test(final int[] args){
		if(args.length>1){
			args[0]=5;
		}
		int[] a={1,2,3};
		
	//	args=a;//编译错误
		args={1,3};//不允许
		
		
	}

 如果final修饰的是基本数据类型,那么在这个方法内,这个参数就不能再进行更改。

 public void  test(final int i){
		 
		 i=200;//编译不能通过
		 
	 }
		

 

相关文章:

  • 2021-06-07
  • 2021-06-21
  • 2021-11-01
  • 2022-12-23
  • 2021-12-08
  • 2022-02-02
猜你喜欢
  • 2022-01-22
  • 2022-12-23
  • 2022-01-11
  • 2022-12-23
  • 2021-05-30
  • 2021-09-15
  • 2022-12-23
相关资源
相似解决方案