Java方法笔记

296 阅读3分钟

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、方法的递归调用

在方法内调用方法,达到递归循环的目的