【 JavaSE 】方法的使用_public static string workplanadd调用void方法

总结

虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。

上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料

有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 存在的意义:
  1. 能够模块化的组织代码
  2. 做到让代码被重复使用,一份代码可以用在多个位置
  3. 让代码更好理解、更简单
  4. 直接调用现有方法,不必重复造轮子

定义语法

  • 基本语法
// 方法定义
public static 方法返回值 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}
// 方法调用
返回值变量 = 方法名称(实参...);
  • 示例:整数相加方法实现和调用
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 方法的调用
int ret = add(a, b);
System.out.println("ret = " + ret);
}
// 方法的定义
public static int add(int x, int y) {
return x + y;
}
}
// 执行结果
ret = 30

注意事项

  • 定义方法时,不会执行代码,调用时才执行
  • 方法定义时,参数可以没有,但如果有一定要指定类型
  • 方法定义时,返回值可以没有,但如果没有,返回类型应该写出 void
  • 当方法被调用时,会将实参赋值给形参(一份临时拷贝)(方法定义时的参数为“形参”,方法调用时的参数为“实参”)
  • 当方法执行时遇到 return 语句,方法结束,不会往下执行方法语句
  • 方法定义必须在类中,一个方法可以被多次调用
  • 方法的定义可以写在 main 方法的上方或者下方(Java 中没有“函数声明”的概念)
  • 方法的调用需要开辟栈帧,方法结束栈帧就随即结束

实参和形参

同样的与C语言一样的是:当方法被调用时,会将实参赋值给形参(一份临时拷贝)

  • 示例:
public class Test{
    public static void main(String[] args){
        int a = 10;
        int b = 20;
        swap(a,b);
        System.out.println("a = "  + a " b = " + b);
    }
    public static void swap(int a, int b){
        int tmp = a;
        int a = b;
        int b = tmp;
    }
}
// 运行结果为 a = 10 b = 20

注:swap 方法里只将形参的值互换了,但是实参的值没有互换

在 Java 中想做到修改实参的值我们需要用到引用类型(引用可以理解为"地址")

  • 示例:使用数组来实现交换数值
public class Test{
    public static void main(String[] args){
        int[] arr = {10, 20};
        swap(arr);
        System.out.println("a = "  + arr[0] " b = " + arr[1]);
    }
    public static void swap(int[] arr){
        int tmp = arr[0];
        arr[0] = arr[1];
        arr[1] = tmp;
    }
}
// 运行结果为 a = 20 b = 10

方法的重载


什么是重载

定义:同一个方法名字相同,提供不同类型的实现,称为重载

规则:

  • 方法名相同
  • 参数列表不同(参数的个数或者参数的类型不同
  • 返回值不作要求

重载要解决的问题

  • 示例:两个数据求和
public class Test{
    public static void main(String[] args){

        int a1 = 10;
        int b1 = 20;
        int ret1 = add(a1, b1);
        System.out.println("ret1 = " + ret1);
 
        double a2 = 1.5;
        double b2 = 2.4;
        double ret2 = a2 + b2;
        System.ouy.println("ret2 =" + ret2);
    }
    public static int addInt(int a, int b){
    	return a + b;
	}
    public static double addDouble(double a, double b){
    	return a + b;
	}
}

对于求不同类型的数据和,在上面我们写了addInt和addDouble两个方法,但是 Java 认为 addInt 这样的名字不友好,不如直接就叫 add,由此重载便派上用场了

  • 求和重载:
class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int ret = add(a, b);
        System.out.println("ret = " + ret);

        double a2 = 10.5;
        double b2 = 20.5;
        double ret2 = add(a2, b2);
        System.out.println("ret2 = " + ret2);

        double a3 = 10.5;
        double b3 = 10.5;
        double c3 = 20.5;
        double ret3 = add(a3, b3, c3);
        System.out.println("ret3 = " + ret3);
    }
    public static int add(int x, int y) {
        return x + y;
    }
    public static double add(double x, double y) {
        return x + y;
    }
    public static double add(double x, double y, double z) {
        return x + y + z;
    }
}

方法递归


什么是递归

定义:一个方法在执行过程中调用自身,就称为“递归”

简单来看递归即是"递推和回归":满足条件时进行递推调用方法,不满足时开始回归

对于没有限制条件的方法调用,则会出现栈溢出(方法的调用会开辟空间,而内存是有限的)

递归执行过程分析

  • 示例:求N的阶乘
public static void main(String[] args) {
    int n = 5;
    int ret = factor(n);
    System.out.println("ret = " + ret);
}
public static int factor(int n) {
    System.out.println("函数开始, n = " + n);
    if (n == 1) {
        System.out.println("函数结束, n = 1 ret = 1");
    return 1;
    }
    int ret = n * factor(n - 1);
    System.out.println("函数结束, n = " + n + " ret = " + ret);
    return ret;
}
// 执行结果
函数开始, n = 5
函数开始, n = 4
函数开始, n = 3
函数开始, n = 2
函数开始, n = 1
函数结束, n = 1 ret = 1
函数结束, n = 2 ret = 2
函数结束, n = 3 ret = 6
函数结束, n = 4 ret = 24


# 分享

**首先分享一份学习大纲,内容较多,涵盖了互联网行业所有的流行以及核心技术,以截图形式分享:**

(亿级流量性能调优实战+一线大厂分布式实战+架构师筑基必备技能+设计思想开源框架解读+性能直线提升架构技术+高效存储让项目性能起飞+分布式扩展到微服务架构.........实在是太多了)

**其次分享一些技术知识,以截图形式分享一部分:**

Tomcat架构解析:

![](https://img-blog.csdnimg.cn/img_convert/d695f86b04ff915bdaad5ef735b1ac38.webp?x-oss-process=image/format,png)

算法训练+高分宝典:

![](https://img-blog.csdnimg.cn/img_convert/eaa387ae72ebc6c92f8709c0fdea1c56.webp?x-oss-process=image/format,png)

Spring Cloud+Docker微服务实战:

![](https://img-blog.csdnimg.cn/img_convert/511b4c9ec352cb4e9718f731f587cca5.webp?x-oss-process=image/format,png)

**最后分享一波面试资料:**

> 切莫死记硬背,小心面试官直接让你出门右拐

1000道互联网Java面试题:

![](https://img-blog.csdnimg.cn/img_convert/d252b389b8ac6640b98fe821d71ad491.webp?x-oss-process=image/format,png)

Java高级架构面试知识整理:

![](https://img-blog.csdnimg.cn/img_convert/fda1175dd89e7ac7e63395f76e557cca.webp?x-oss-process=image/format,png)



> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

背,小心面试官直接让你出门右拐

1000道互联网Java面试题:

[外链图片转存中...(img-5LldlMJv-1715475028649)]

Java高级架构面试知识整理:

[外链图片转存中...(img-rjCYXBPy-1715475028649)]



> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值