Java 方法的使用(方法重载,字节跳动Java岗经典面试真题

本文详细探讨了Java中的方法参数传递机制,包括基本类型和引用类型的差别,并通过实例展示了实参和形参的关系。此外,还介绍了方法递归的概念,列举了多个递归实现的示例,如算术和、阶乘、斐波那契数列等。最后,强调了面试准备中的关键点,如熟悉简历内容、项目经验等。
摘要由CSDN通过智能技术生成
    System.out.println(add3(10.0, 20.0));

}

public static int add1(int x, int y) {

    return x + y;

}

public static int add2(int x,int y,int z){//参数类型相同,参数个数不同

    return x+y+z;

}

public static double add3(double x, double y) {//参数个数相同,参数类型不同

    return x + y;

}

}




[](
)二、实参和形参的传递

=============================================================================



形参:方法定义时,声明小括号内的参数  

实参:方法调用时,声明先括号内的参数  

参数传递机制!:  

如果参数类型是基本类型,此时实参赋给形参是实参真实存储的数据值  

如果参数类型是引用类型,此时实参赋给形参是实参存储数据的地址值



从例子驱动 可以先看下程序输出结果是什么



public class TransferTest1 {

public static void main(String[] args) {

    TransferTest1 test=new TransferTest1();

    test.first();

}

public  void first(){

    int i=5;

    Value v=new Value();

    v.i=25;

    second(v,i);

    System.out.println(v.i);

}

public void second(Value v,int i){

    i=0;

    v.i=20;

    Value val=new Value();

    v=val;

    System.out.println(v.i+"  "+i);

}

}

class Value{

int i=15;

}




内存图  

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210501135604292.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MTYwMTQzNw==,size_16,color_FFFFFF,t_70)  

最终输出的结果是 v.i=15 i=0 v.i= 20  

第一个v.i是second方法引用类型中i的值  

第二个v.i是first方法引用类型中i的值



[](
)三、方法递归

=========================================================================



递归就是方法自己调用自己本身



条件  

1.调用自身(隐式循环,重复执行某段代码,但是重复执行某段代码无须循环控制)  

2.有终止条件



例题  

1.计算1-n的算数和



int sum(int n){

    if(n==1){

        return 1;

    }

    return n+sum(n-1);

} 



2.计算n的阶乘



int fac(int n){

    if(n==1){

        return 1;

    }

    return n*fac(n-1);

} 



3.斐波那契数列



//斐波那契数列 f(1)=1,f(2)=1,f(3)=2,f(4)=3 f(n)=f(n-1)+f(n-2)

int fib(int n){

    if(n==1||n==2){

        return 1;

    }

    return fib(n-1)+fib(n-2);

}




4.顺序打印数字的每一位 例子 12345 打印为 1 2 3 4 5



/*顺序打印数字的每一位 例子 12345 打印为 1 2 3 4 5

递归执行的是方法的调用 即12345传递参数后 n=12345 执行n>9

调用1234方法 执行n>9

调用123方法 执行n>9

调用12方法 执行n>9

执行1 打印1 之后递归执行前面的方法

*/ void printNum(int n){

   if(n>9){

       printNum(n/10);

   }

   System.out.print(n%10+"  ");

}




5.计算组成数字的和 例如123 输出(1+2+3=6)



int printSum(int n){

if(n>9){

    return n%10+printSum(n/10);

    }

return n%10;

}




6.青蛙跳台阶问题 一个青蛙每次只能跳1~2次 有n阶台阶 求最多有多少种跳法



/*一个台阶一种跳法 f(1)=1

两个台阶两种跳法 f(2)=2

三个台阶三种跳法 f(3)=3

最后

最后,强调几点:

  • 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
  • 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
  • 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

面试答案

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

面试答案

[外链图片转存中…(img-xYmMFteu-1630636106653)]

[外链图片转存中…(img-Qtb487NF-1630636106655)]

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值