什么是函数:
编程语言中函数和数学中的函数不是一个东西,不要怕。
函数:为了解决某一特定问题,具有名称的的代码集合。
函数也就是现实中的一种行为动作!!!。
过程:N个小过程组成
|-- 简化整个过程
|-- 实现代码的高度复用!!!
java中如何定义函数
访问修饰符 函数返回值的类型|void 函数名称([参数列表]) {
// 函数体
// return 返回值;
}
java中函数是属于类的!!必须定义在类中!!!所以说函数是类成员
先把函数都定义静态函数,等学习了面向对象,再定义常规函数!!
java中:静态方法没有办法直接调用非静态方法!!!只能调用静态方法
函数调用:
函数是无法自己执行的!!!必须通过调用才可以执行!!!
函数名称([参数列表]);0
函数的分类:
|-- 有没有参数:
|-- 有参函数
|-- 无参函数
|-- 有没有返回值
|-- 有返回值的函数
|-- 无返回值的参数
|--定义者
|-- 系统函数
|-- 第三者
|-- 自定义函数
**
**
局部变量:
局部变量(本地变量):定义在函数中的变量叫做局部变量
函数在内存的调用的本质:
栈:
队列:
执行栈:
函数怎么调用
局部变量
函数重载(overload):
|-- 什么是函数重载
函数名称相同,函数的参数的个数或者类型不同,调用的时候,自动匹配对应的函数
思考:
函数重载所有编程语言都有的吗?
函数重载现象是强数据类型语言(java、C、C++、C#)所特有的现象
弱数据类型语言(javascript、python、ruby)是不具备函数重载
递归(recursion):
什么叫做递归:函数自身调用自身
递归时的内存模型:
优点:分治理念的体现,可以把非常复杂的问题,简单解决
缺点:非常耗费内存,所以说,当栈被全部占用后,触发StackOverflowError异常!!!
注意,可以使用java -X -Xss 大小, 来调整JVM的栈大小空间
-Xms<大小> 设置初始 Java 堆大小
-Xmx<大小> 设置最大 Java 堆大小