2021-07-13Java函数总结

1.什么是函数?

函数是定义在类中的一段独立的代码块,用来实现某个功能。Java中,函数又被称为方法。

  • 函数的主要作用是提高代码的复用性。
  • 函数都是在栈内存中运行。

修饰符 返回值类型 函数名(){
函数体;
}

  • 修饰符:可以是访问修饰符,也可以说是函数修饰符(abstract、final、static、synchronized),还可以是两者的组合。
  • 返回值类型:用于限定函数返回值的数据类型。

2.函数的调用

  1. 调用静态方法
public class hjl{
  public static void main(String[] args){
    doing();
  }
  public static void doing(){
    System.out.println("hello word");
  }
}
  1. 调用非静态方法
public class hjl{
  public static void main(String[] args){
    hjl d = new hjl();
    d.doing();
  }
  public void doing(){
    System.out.println("hello word");
  }
}

3.函数的分类

  1. 有参有返回值
 public int doing(int age){
             return 1;
}
  1. 无参有返回值
public int doing(){
            return 1;
}
  1. 有参无返回值
public void doing(int age){

}
  1. 无参无返回值
public void doing(){

}

4. 变量

局部变量:就是在成员方法里面定义的变量我们称之为局部变量
成员变量:定义在类的内部,方法的外部,在其所在类内的所有方法均可调用。
注:java没有全局变量,只有成员变量。

5.函数在内存中的调用本质

在java中,方法以及局部变量(即在方法中声明的变量)是放在堆上的。当你调用一个方法时,该方法会放在调用栈的栈顶。栈顶的方法是目前正在执行的方法,直到执行完毕才会从栈顶释放。

6.函数的重载

在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可,调用的时候,自动匹配对应的函数。
例子:

public class hjl {
public static int add(int a, int b) {
return a+b;
}
//通过调用另一个重载函数实现重载
public static int add(int a, int b, int c) {
return a+b++c;
}
public static void main(String[] args) {
System.out.println(add(1,2));
System.out.println(add(2,3,4));
}
}

输出结果:

3
9

思考:函数重载所有编程语言都有的吗?
函数重载现象是强数据类型语言(java、C、C++、C#)所特有的现象;弱数据类型语言(javascript、python、ruby)是不具备函数重载。

7.函数的递归

函数的递归:函数自身调用自身

斐波那契数列:1 2 3 5 8 13 21 34 55 89 …

代码实现:

public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		System.out.print("请输入一个数字:");
		int num=sc.nextInt();
		System.out.println(doing(num));
} 
public static int doing(int q){
		if(q==1 || q==2){
		   return q;
		}
		return doing(q-1)+doing(q-2);
}	
输出结果:
请输入一个数字:6
13

递归时的内存模型:
优点:分治理念的体现,可以把非常复杂的问题,简单解决
缺点:非常耗费内存,所以说,当栈被全部占用后,触发StackOverflowError异常!!!
注意,可以使用java -X -Xss 大小, 来调整JVM的栈大小空间
-Xms<大小> 设置初始 Java 堆大小
-Xmx<大小> 设置最大 Java 堆大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值