1、为提高代码复用性,可以定义方法,需要重复使用该功能时,只需再次调用即可。
注意:程序的开始都是先执行main方法,所有方法遵循自上而下执行,并且,方法只有被调用了才会执行。
方法要在类体里写,不能方法体中写。 方法中的变量在方法执行结束后,内存就释放了。
2、方法如何定义?
[修饰符列表] 返回值类型 方法名(形式参数列表){ [ ]里的内容不是必须的,是可选的
方法体;
}
·返回值类型可以是任意数据类型,一般指一个方法结束之后的结果,通常是一个数据。
·假如main方法调用了A方法,且A有返回值,则返回值到了main中。若返回值类型为void则没有返回值
·若有返回值,则方法最后必须有 “return 值;” 若出现此句,当前所在方法必然结束了。
3、形式参数列表,简称“形参”,是局部变量,可以有n个。形参的数据类型起决定作用,形参可以 不写
4、方法被调用的语法: 类名.方法名(实际参数列表)
5、JVM中主要有三块内存空间:栈、堆、方法区
方法区中存储的是代码片段。
栈:当方法被调用时,在栈中分配方法所需的内存空间。
栈是先进后出,栈帧永远指向栈顶部的元素,栈顶部的元素具备活跃权。
方法调用时叫压栈,分配空间 方法结束时叫弹栈,释放空间
栈中存储方法运行过程中需要的内存,以及栈中会存储方法的局部变量。
3个i和一个x是不同的四个局部变量
6、数据结构指存储数据的容器,该容器可能存在各种结构。例如:数组、链表、图、二叉树等
java中数据结构可以直接用
7、方法重载机制:
当方法名相同时,编译器会通过方法的参数类型进行方法的区分。 发生方法重载需要:
1、在同一个类中 2、方法名相同 3、参数列表不同(个数、类型、顺序不同皆可 )
方法重载和方法的返回值类型无关,和方法的修饰符列表无关,只跟方法名和形参有关系
println其实是一个方法名,方法java公司已写好。此方法必然重载了。System.out.println() = S.p()
8、方法递归:方法自己调用自己
当递归时,没有结束条件的话就会发生栈内存溢出错误,因此必须有结束条件。
但即使有结束条件也有可能会溢出,因为递归的太深,栈内存不够用。
可以通过手动调整栈内存初始化大小,在JVM中。