1.入参和出参
入参:做这件事 需要的未知条件
出参:做完事后需要进行的反馈
2.方法重载(overload)
定义:方法名相同,参数列表不同。 其中列表不同分为:个数不同和类型不同
方法具有唯一性:方法名和参数
3.内存划分:
Java Runtime Data Area : java运行时区域,一般叫JVM内存
*
- 程序计数器 :
-
一块较小的内存区域.作用可以看做是当前程序执行的位置指示器
- 静态区/方法区 :
-
保存程序文件(class文件) 以及静态数据,方法被调用之前,也保存在静态区,内部还有运行时常量池
- VM栈 : 又叫栈内存
-
栈内存是以栈数据结构为模型开辟的一段空间, 特性是先进后出
-
栈 : 是一种数据结构,先进后出,像d夹
- 栈的构成因素
-
栈空间 : 栈内存就是栈空间
-
栈帧 : 栈空间中的每一个栈元素 就叫栈帧(比如 d夹中的每一个子d 就叫栈帧)
-
栈底元素 : 第一个放进去的栈帧
-
栈顶元素 : 最后一个放进去的栈帧
- 栈 *** 作
-
压栈 : 就是指把元素放入栈空间的过程
-
d栈 : 就是把元素d出去的过程
- 栈内存,是用来执行方法的,所有方法的执行,必须在栈内存进行
- 本地方法栈 :
-
用来执行一些本地方法,比如hashCode 等 , 模型和 *** 作都和VM栈一致 , 不用管,
- 堆内存 :
-
用来保存对象
4.递归
定义:方法中调用当前方法
递归思想: a.递归和迭代是等价的 就是循环 b.基本思想就是依次类推
应用场景: 循环能做的,递归都能做,但是这种情况优先使用循环,应为递归非常消耗内存,运行效率低;但是 像树结构之类的,循环是没法做的,只能通过递归来搞定
常见的递归应用场景:所以树状结构;文件夹复制;斐波那契数列
难点:不容易理解递归思想,画图,栈帧调用图
注意:必须有终止条件,否则就等于死循环一样,导致一直压栈不会d栈而出现栈内存溢出问题
5.斐波那契数列:就是指从第三项开始每一项就是前两项的和 即f(n)=f(n-1)+f(n-2) (n>2)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)