助你加薪!2021年春招面向编程看这一篇就够了,让你面试无忧! (7)

一个方法中定义完了参数,则在调用的时候必须传入与其一一对应的参数,但是在JDK 1.5之后提供了新的功能,可以根据需要自动传入任意个数的参数。

语法:

返回值类型 方法名称(数据类型…参数名称){ //参数在方法内部 , 以数组的形式来接收 } public class Demo{ public static void main(String[] args){ System.out.println(sum(1)); //输出:1 System.out.println(sum(1,2)); //输出:3 System.out.println(sum(1,2,3)); //输出:6 System.out.println(sum(1,2,3,4)); //输出:10 } public static int sum(int... nums){ int n=0; for(int i=0;i<nums.length;i++){ n+=num[i]; } return n; } }

注意: 可变参数只能出现在参数列表的最后。

递归

递归,在数学与计算机科学中,是指在方法的定义中使用方法自身。也就是说,递归算法是一种直接或者间接调用自身方

法的算法。

递归流程图如下:

助你加薪!2021年春招面向编程看这一篇就够了,让你面试无忧!

//5的阶乘 public class Demo{ public static void main(String[] args){ int n=fact(5); System.out.println(n); //结果:120 } public static int fact(int n){ if(n==1){ return 1; }else{ n*fact(n-1); } } }

注意:能用循环完成的工作,尽量不要使用递归,因为太消耗内存。

异常处理

异常是在程序中导致程序中断运行的一种指令流。

例如,现在有如下的操作代码:

public class ExceptionDemo01{ public static void main(String argsp[]){ int i = 10 ; int j = 0 ; System.out.println("============= 计算开始 =============") ; int temp = i / j ; // 进行除法运算 System.out.println("temp = " + temp) ; System.out.println("============= 计算结束 =============") ; } }; //运行结果: //============= 计算开始 ============= Exception in thread "main" java.lang.ArithmeticException: / by zero at ExceptionDemo01.main(ExceptionDemo01.java:6)

以上的代码在“int temp = i / j ;”位置处产生了异常,一旦产生异常之后,异常之后的语句将不再执行了,所以现在的程序并没有正确的执行完毕之后就退出了。

那么,为了保证程序出现异常之后仍然可以正确的执行完毕,所以要采用异常的处理机制。

如果要想对异常进行处理,则必须采用标准的处理格式,处理格式语法如下:

try{ // 有可能发生异常的代码段 }catch(异常类型1 对象名1){ // 异常的处理操作 }catch(异常类型2 对象名2){ // 异常的处理操作 } ... finally{ // 异常的统一出口 } public class ExceptionDemo01{ public static void main(String argsp[]){ int i = 10 ; int j = 0 ; System.out.println("============= 计算开始 =============") ; try{ int temp = i / j ; // 进行除法运算 System.out.println("temp = " + temp) ; System.out.println("============= 计算结束 =============") ; }catch(ArithmeticException e){ System.out.println("除数不能为零") ; } } }; try+catch的处理流程

1、 一旦产生异常,则系统会自动产生一个异常类的实例化对象。

2、 那么,此时如果异常发生在try语句,则会自动找到匹配的catch语句执行,如果没有在try语句中,则会将异常抛出.

3、 所有的catch根据方法的参数匹配异常类的实例化对象,如果匹配成功,则表示由此catch进行处理。

助你加薪!2021年春招面向编程看这一篇就够了,让你面试无忧!

注意:使用try…catch捕获异常不是简单的提示就行了,那样意义很小,我们应该想办法解决异常。

finally

在进行异常的处理之后,在异常的处理格式中还有一个finally语句,那么此语句将作为异常的统一出口,不管是否产生了异常,最终都要执行此段代码。

注意:finally在一些情况是不会被执行的,比如电脑被关机了(方法强制中断)。

唯一会使finally不执行的代码:

public class Demo{ public static void main(String[] args){ haha(); } public static void haha(){ try{ int a = 10; int b = 0; System.out.println(a/b); }catch(Exception e){ System.out.println("出现了异常"); //退出JVM System.exit(0); }finally{ System.out.println("锄禾日当午,汗滴禾下土"); } } } //结果:出现了异常

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwzyj.html