1. 方法
(1)作用,实现一种功能,使用时传递数据,返回最终结果(返回值(返回类型与规定一致,必须返回 return),也可以为void(无返回值,或返回return;,有return关键字的语句执行,方法结束,在同一个作用域中return下面不要编写代码,会报错)),可以重复使用,提高代码复用率。
(2)使用这个方法叫做:invoke调用方法
(3)在类中定义,不可以在方法体中定义方法
(4)定义: [修饰符列表] 返回值类型 方法名(形式参数列表){ 方法体}
(5)方法名,最好是动词,满足驼峰命名法则
(6)调用,static类型的 类名.方法名(实参)
(7)main方法,在执行类时,JVM自动调用
2. 方法执行,JVM内存的分配及变化
(1)方法只定义不调用,不会执行,也不会分配运行所属的内存空间
(2)JVM内存划分
方法区: 在进行类加载的过程中,方法代码片段在方法区中,属于.class文件的一部分,因此在JVM三块主要的内存空间中方法区先有数据,代码片段在方法区中只有一份,但可以被重复调用。
堆内存: 静态变量
栈内存: 每次调用方法需给其分配独立的活动场所,在栈内存中分配(局部变量分配空间),发生压栈操作。方法运行结束,发生弹栈操作,释放空间。局部变量在栈中存储。
3. 方法重载
(1)方法功能类似,使得程序员不需要记住多个方法名,仅需使用一个方法名,就可以调用不同的方法,这就是重载机制。
(2)在同一个类中,方法名相同,形参不同(个数,类型,顺序),构成重载,和返回值无关
4. 方法递归调用
(1)方法自身调用自身,很耗费内存,不推荐使用,但代码较为简单
(2)要有终止条件结束递归
(3)递归利用栈实现