JAVA学习历程4

方法
  1.定义
    [修饰符列表] 返回值类型 方法名(形式参数列表){}
  2.对上述说明
    2.1关于修饰符列表
              可选,非必须
              现在统一:public static
              如果有static,怎么调用该方法?
                    类名.方法名(实际参数列表);
    2.2返回值类型
          什么是返回值类型?
                执行结果
          类型:byte short int long float double boolean char String void…
          返回值类型若不是void,方法结束必须返回具体数值
    2.3方法名
          合法标识符
          见名知意   动词(方法一般表示一种动作)
          首字母小写,后面每个单词首字母大写
    2.4形式参数列表
          局部变量:int a; double b;…
          个数:0~N个
          多个形式参数之间用“,”隔开
          形式参数列表起决定性作用:数据类型,名字(局部变量的名字)

public staic int sum(int a , char b){
    sum(10,'a');

  3.调用方法
          类名.方法名(); (修饰符列表有static的情况)
          同类中可省略“类名”

          return     终止方法    break    终止循环
  
  
  
  
  
方法在执行过程当中,JVM中的内存是如何分配,内存是如何变化的?
    1.方法只定义,不调用,是不会执行的,在JVM中也不会给该方法分配“运行所属”的内存空间
    2.JVM内存划分上有3块主要内存空间:方法去内存,堆内存,栈内存
    3.栈数据结构
        栈:stack,一个数据结构(反映数据存储形态)
在这里插入图片描述
1.栈帧永远指向栈顶元素
2.栈顶处于活跃状态,其他都是静止状态
3.术语:
        压栈/入栈/push
        弹栈/出栈/pop
4.栈数据结构存储数据特点:
        先进后出
        后进先出
        类似于弹夹
  

4.方法代码片段存在哪里?执行时执行过程的内存在哪里分配?
    方法代码片段属于.class字节码文件的一部分,字节码文件在类加载时将其放到方法区当中。JVM的三块主要的内存空间中方法区内存最先有数据,存放代码片段
    代码片段虽然在方法区内存存在一份,但可重复使用
    每一次调用,给该方法分配独立的活动场所在栈内存中分配

**5.**方法在调用的瞬间,给方法分配内存空间,在栈中发生压栈动作,方法执行结束之后,给该方法分配的内存空间全部释放,此时发生弹栈动作
    压栈:给方法分配内存
    弹栈:释放该方法的内存空间

**6.**局部变量在“方法区”中声明。局部变量在运行阶段内存在栈中分配

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值