接上个博客方法、重载、递归

接上个博客方法、重载、递归,第1张

接上个博客方法、重载、递归

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)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5694650.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存