Java的基础笔记(3)

本文深入探讨了编程中的方法概念,强调其复用性和如何根据业务抽取。讲解了JVM内存结构中的方法区、堆内存和栈内存的作用。详细阐述了方法调用时的内存变化,包括压栈和弹栈过程。此外,还介绍了方法重载的条件和应用场景,以及方法递归的原理,强调了递归使用时需要注意的结束条件和内存管理,提示在适当情况下优先考虑使用循环替代递归。
摘要由CSDN通过智能技术生成

1、方法是什么? 方法是一段可以完成某个特定功能的并且可以被重复利用的代码片段。 方法的出现,让代码具有了很强的复用性

2、方法最难实现的是: 根据业务怎么进行方法的抽取。

方法的返回值类型定义为 什么?

  方法的名字叫什么?

方法的形式参数列表定义为 什么?

   一个方法就是一个独立的功能。

3、方法的定义

[修饰符列表] 返回值类型 方法名(形式参数列表){
    方法体; 
}

4、JVM的内存结构中三块比较重要的内存空间。

方法区存储代码片段,存储xxx.class字节码文件,这个空间是最先有数据的, 类加载器首先将代码加载到这里。

堆内存 在运行时动态地申请某个大小的内存空间。

栈内存stack栈当中存储什么? 每个方法执行时所需要的内存空间(局部变量)。

6、关于数据结构中的栈数据结构 原则: 后进先出 先进后出 栈数据结构相关的术语: 栈帧:永远指向栈顶部的元素(栈顶元素具有活跃权。) 栈顶元素 栈底元素 压栈,入栈,进栈,push 弹栈,出栈,pop

7、分析程序运行过程中的内存变化 方法只定义不调用是不会执行的。 方法调用时:压栈 (在栈中给该方法分配空间) 方法执行结束时:弹栈(将该方法占用的空间释放,局部变量的内存也释放。)

8、方法重载overload

8.1、什么情况下我们考虑使用方法重载机制?
    当功能相似的时候,建议将方法名定义为一致的.
​
    注意:如果功能不相似,坚决要让方法名不一致。
​
8.2、代码满足什么条件的时候构成了方法重载?
    条件1:在同一个类当中
    条件2:方法名相同
    条件3:形式参数列表不同(类型、个数、顺序)
​
    注意:
        方法重载和返回值类型无关,和修饰符列表无关。
​

9、方法递归

9.1、需要理解什么是方法递归?
    方法自身调用自身。
​
9.2、使用递归的时候,必须添加结束条件,没有结束条件,会发生栈内存溢出错误。
    StackOverflowError
    原因:一直压栈,没有弹栈,栈内存不够用。
​
9.3、能够使用循环代替递归的尽量使用循环,循环的执行耗费内存少一些,
递归耗费内存相对多一些,另外递归使用不当很容易内存溢出,JVM停止工作。
当然,只有极少数情况下,只能用递归,其它代码解决不了问题。
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值