7.Java方法及内存图
2022-01-09 本文已影响0人
每天起床都想摆
方法
- 方法是一种语法结构,能够把一段代码封装成一个功能,方便重复使用
方法的定义,调用
-
方法定义的完整格式
修饰符 返回类型 方法名(形参列表){ 方法体 return 返回值; }
-
方法的调用格式:
方法名(...);
-
方法声明了具体的返回值类型,内部必须使用return返回对应类型的数据
-
方法没有声明返回值类型即返回值类型为void,方法体不可再使用return语句进行返回
-
形参列表可以有多个,甚至可以没有;如果有多个形参,多个形参必须使用“,”隔开,且不能给初始化值
-
方法如果没有参,或者返回值类型为void可以称为无参数,无返回值的方法
-
方法使用的常见问题
-
方法的编写顺序无所谓
-
方法与方法之间是平级关系,不能嵌套定义,但是可以相互调用
-
方法的返回值类型为void,方法内不能使用return语句返回值;方法声明了具体的返回值类型,,方法内部则必须使用return返回值,且返回值的,类型和方法定义声明时规定的返回值类型要一致
-
return语句下面不能写其他代码,因为永远执行不到这里,属于无效代码
-
方法不调用就不会执行,调用时必须严格遵守方法的使用情况
-
有返回值的方法调用时可以选择定义变量接收结果,或者直接输出调用,甚至直接调用;无返回值方法只能直接调用
-
直接调用:sum(1,2);
-
变量接收:int result = sum(1,2);
-
输出调用:System.out.println(sum(1,2));
-
方法调用的内存图
- 方法没有被调用的时候,存放在方法区中的字节码文件中
- 方法被调用的时候,需要进入到栈内存中去运行
方法的参数传递机制
-
机制:
在传输实参给方法的形参的时候,并不是传输实参变量本身,而是传输实参变量中存储的值,即值传递
实参:如在方法内部定义的变量
形参:如在定义方法时,括号里面声明的参数
-
基本类型的参数传递
-
引用类型的参数传递
对于引用类型的参数传递时,以数组为例,当出现形参数组名和实参数组名同名时,,此时二者指向的是同一个数组,是因为数组放在堆内存当中,从栈内存访问堆内存时创建了对象访问的是同一个数组,而基本类型传递则是从方法区调入栈内存中处理
-
总结:
- 基本类型的参数传递存储的是数据值
- 引用类型的参数传递存储的是地址值
方法重载
- 同一个类中,出现多个方法名称相同,但是形参列表不同,这些方法称为重载方法
- 调用方法的时候,会通过参数的不同来区分调用的是哪个方法
- 方法重载的识别:
- 同一个类中,方法名相同,形参列表不同
- 形参列表不同指的是:形参的个数,类型,顺序不同,不关心形参的名称
return关键字的单独使用
- 单独使用:立即跳出并结束当前方法的执行;return关键字单独使用可以放在任何方法中