break的两种用法
在switch语句中,用来结束case语句
在循环中,用于结束循环
continue
结束本次循环,但是执行下一次循环
注意:默认的break和continue都是操作的内循环,如果想要操作对应的外循环,需要对外城循环设置名字,然后通过break 名字或者continue 名字来操作对应的外循环
方法
优点:代码复用,易维护,易扩展,灵活度提高
声明: 修饰符列表 返回值类型 方法名(参数列表){方法体}
修饰符列表:可以有,可以没有,可以有多个(空格隔开),不区分顺序
权限控制:public private protected 不写 (四选一)
static 静态修饰符,不加就是成员
返回值类型:可以写十一种数据类型中任意一种,如果没有返回值,则写void,void表示没有返回值
方法名:符合规则即可
参数列表:可以没有,可以有多个,多个用逗号隔开,参数列表中的变量也是局部变量
方法体:就是方法中的功能代码
分类:
成员方法 : 没有使用static修饰的方法
静态方法 : 使用static修饰的方法
构造方法 :
调用:
静态方法 : 类名.方法名(参数) 同类中类名可以省略
成员方法 : 对象.方法名(参数)
形参:形容参数,方法声明时,指定的参数列表
实参:实际参数,调用方法时,传入的具体数据
入参 : 参数列表,也就是调用这个方法的时候,需要传入什么数据
出参 : 返回值,也就是方法执行完之后,需要返回的数据
Overload(方法重载)
方法名相同,参数列表不同,就是方法重载
参数列表不同分为两种: 1 个数不同 , 2 类型不同
优点:功能相同,名字相同,方便记忆,代码美观
JVM运行时区域
程序计数器:
静态区/方法区:用来保存运行时的class文件及静态属性和方法
VM栈:用栈数据结构为模型,开辟的一块空间
堆内存:用于保存对象(包括成员变量)
本地方法栈:和VM一样,只不过用于执行本地方法
递归(递归就是方法中调用当前方法)
直接递归:当前方法中对自身方法进行调用
间接递归:A调用B,B调用A
注意:递归和迭代(循环)是等价的,都需要终止条件,否则就是死循环
java.lang.StackOverflowError :栈内存溢出,一般是因为一直压栈并没有弹栈导致
栈溢出原因:1 递归没有终止条件,出现了死循环 2递归代码没有问题,但是因为要计算的功能比较大,导致压栈过多
斐波那契数列(利用递归)
1 1 2 3 5 8 13 21 34 55 89 ....
例如:有一对兔子,从第三个开始,每个月生一对兔子,新生的兔子也是从第三个月开始,每个月生一对兔子
问,15个月后,有多少对兔子