1. 关于修饰符
①是代码中的可选项,不是必须的
②方法的修饰符列表当中“有static关键字”的话,用‘类名.方法名(实际参数列表)’调用
2. 返回值类型
①什么是返回值
一个方法是可以完成某个特定功能的,这个功能大多数都是需要返回最终执行结果的,
执行结果可能是一个数据,这个具体存在的数据就是返回值。
②返回值的类型
返回值是一个具体存在的数据,数据都是有类型的,此处需要指定的是返回值具体类型。
③返回值类型可以指定哪些类型
Java任意一种均可,包括*基本数据类型*和*所有引用数据类型*。
如果不返回任何数据,这返回值类型必须编写void关键字,有void时,不能编写‘return 值’,
可以编写‘return ;’,只要带有return关键字语句执行,return所在方法结束。
3.形式参数列表
①形参是局部变量(有数据类型)
②形参的个数可以是0-N。
③起关键性作用的是数据类型。
④方法在调用的时候,实际给这个方法传递的真实数据被称为“实际参数”(实参)。
⑤形参列表和实参列表必须满足:数量相同,类型相同。
4.方法怎么调用
①方法在执行过程中,在JVM中的内存是如何分配的?内存是如何变化的?
1、方法只定义而不调用,是不会执行的,并且在JVM中也不会给该方法分配“运行所需”的内存空间。
只有在调用这个方法的时候,才会动态的给这个方法分配所属的内存空间。
2、在JVM内存划分上有这样三块主要的内存空间:**方法区内存-堆内存-栈内存**
②关于‘栈’的数据结构
1、栈(stack)是一种数据结构
2、数据结构反应的是数据的存储形态
3、栈是一种常用的数据结构
4、方法在调用的瞬间,会给该方法分配内存空间,会在栈中发生“压栈”动作,方法执行结束之
后,给该方法分配的内存空间全部释放,此时发生“弹栈”的动作。
5、压栈:给方法分配内存;弹栈:释放该方法的内存空间。
6、局部变量在“方法体”中声明,局部变量运行阶段内存在栈中分配。
③方法的代码片段存在哪里?方法执行的时候执行过程的内存在哪里分配?
1、方法代码片段属于.class字节码文件的一部分,字节码文件在类加载的时候,将其放到方法区
中。所以JVM中的三块主要的内存空间中方法区内存最先有数据(存放了代码片段)。
2、代码片段虽然在方法区内存当中只有一份,但是可以被重复调用。每一次调用这个方法的时候,
需要给该方法分配独立的活动场所,在栈内存中分配
5、方法重载机制
什么条件满足之后构成方法的重载?
①在同一个类中
②方法名相同
③参数列表不同(数量不同、顺序不同、类型不同)
6、方法的递归调用
在方法内调用方法,达到递归循环的目的