Java 方法的使用(方法重载、形参和实参调用关系,作为 Java 程序员都应掌握
public class Demo01 {
public static void main(String[] args) {
System.out.println(add1(10, 20));
System.out.println(add2(10, 20,30));
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;
}
}
[](()二、实参和形参的传递
=============================================================================
形参:方法定义时,声明小括号内的参数
实参:方法调用时,声明先括号内的参数
参数传递机制!:
如果参数 Java 开源项目【ali1024.coding.net/public/P7/Java/git】 类型是基本类型,此时实参赋给形参是实参真实存储的数据值
如果参数类型是引用类型,此时实参赋给形参是实参存储数据的地址值
从例子驱动 可以先看下程序输出结果是什么
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_aH 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 R0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MTYwMTQzNw==,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){
最后我们该如何学习?
1、看视频进行系统学习
这几年的 Crud 经历,让我明白自己真的算是菜鸡中的战斗机,也正因为 Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去 B 站进行学习,B 站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:
![](https://static001.geekbang.org/infoq/80/800bdfdb84b30446fb3a1ea46aa5481c.png)
2、读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
Spring 源码深度解析:
![](https://static001.geekbang.org/infoq/1b/1ba57eb8d52db57f1041ecd8c64e0131.png)
Mybatis 3 源码深度解析:
![](https://static001.geekbang.org/infoq/18/18a757dd998bbffab4775b4bcdc7a16e.png)
Redis 学习笔记:
![](https://static001.geekbang.org/infoq/04/04405ae613162472d33d36f78ccd87d1.png)
Spring Boot 核心技术-笔记:
![](https://static001.geekbang.org/infoq/96/9625480cd48d4e39bb5ce49f477d06b7.png)
3、面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:
![](https://static001.geekbang.org/infoq/1e/1e6ff5b615e502299d99055a2cd1f1ac.png)
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
评论