方法的重载和递归

1、方法重载overload

1.1

什么情况下使用方法重载机制?
当功能相似的时候,建议将方法名定义为一致的,这样代码美观,又方便编程。

注意:如果功能不相似,坚决要让方法名不一致。

1.2

代码满足什么条件的时候构成了方法重载?
条件1:在同一个类当中
条件2:方法名相同
条件3:形式参数列表不同(类型、个数、顺序)

注意:
方法重载和返回值类型无关,和修饰符列表无关。

1.3

方法重载的优点?
代码美观
方便代码的编写

public static void stu(int a) {

public static int stu(int a, int b) {

public static void stu(int a, double b) {

2、方法递归

2.1

什么是方法递归?
方法自身调用自身。

2.2

使用递归的时候,必须添加结束条件,没有结束条件,会发生栈内存溢出错误。(StackOverflowError)
原因:一直压栈,没有弹栈,栈内存不够用。


2.3

能够使用循环代替递归的尽量使用循环,循环的执行耗费内存少一些,
递归耗费内存相对多一些,另外递归使用不当很容易内存溢出,JVM停止工作。
当然,只有极少数情况下,只能用递归,其它代码解决不了问题。

2.4

当递归有结束条件,并且结束条件合法的时候,就一定不会内存溢出吗?
也不一定。可能递归的太深了。

2.5
在实际的开发中遇到递归导致的栈内存溢出错误是怎么办?
第一步:先检查结束条件是否正确。
第二步:如果正确,可以调整JVM的栈内存大小。(java -X)

猜你喜欢

转载自www.cnblogs.com/wyqblog/p/12450919.html