目录
1、方法的定义
修饰符 返回值类型 方法名(形式参数){
方法体
}
//实现从老代码迭代成新代码
//修饰符 方法无返回 方法名 参数列表
public static void print(String str) {
}
2、带返回类型的方法定义
修饰符 返回值类型 方法名(形式参数){
方法体
return 返回值类型;
}
-
return 的作用:结束当前的方法,可以单独用,还可以带返回类型用
3、返回类型:
-
-
八大基本数据类型
-
引用数据类型
-
void(没有返回)
-
注意:方法的可变参数底层实际上就是数组
4、方法的重载
-
定义:同一个类里面,方法允许存在一个以上的同名方法,要求参数列表不同
-
参数列表不同:
-
1.参数类型不同
-
2.参数顺序不同
-
3.参数个数不同
-
-
和返回值类型无关
5、JVM内存模型变化
-
栈:是线程私有的,生命周期与线程相同,线程之间不共享,里面拥有多个栈帧
-
局部变量
-
方法内定义的局部变量
-
参数列表变量
-
对象引用(指向对象的引用地址)指向堆里面
-
-
栈是一块连续的空间,相对于堆来说,内存较小,运行速度较快,不需要垃圾回收机制
-
-
堆:是jvm 内存模型最大的一块,被所有共享,在jvm 启动时所创建。
-
存放对象实例(new 对象)并且会给初始值
-
需要垃圾回收机制回收垃圾,
-
配置大小:-Xmx -Xms
-
如果堆中的对象没有被栈引用时,会被垃圾回收器不定时回收。
-
-
字符串常量池:存储在类加载完成,经过验证,解析阶段的一些常量字符串。
-
程序计数器pc:
-
是一块很小的内存区域,记录当前线程执行的字节码的行号指示器,可以去通过计数器控制,指令,循环,跳转。
-
线程私有,每条线程都有自己的程序计数器
-
-
方法区:
-
类信息,记录类的字节码信息,常量池(String 和 包装类)
-
-
GC(垃圾回收器):不定时的回收垃圾,回收一些没有引用的堆内存的垃圾,不需要程序员手动操作。
6、方法的递归
-
定义:方法自己调用自己
-
使用递归计算5的阶乘
public static int recursion(int num) {
if (num == 1) {
return 1;
}
int recursion = recursion(num - 1);
int ret = num * recursion;
return ret;
}