方法的值传递机制

在这里插入图片描述
答案

2 1 5
1 1 5

变量分为局部变量和成员变量, 成员变量又分为实例变量和静态变量

1 变量的就近原则,同一作用域内,如果参数便可和类的属性名(实例变量)重名了,除非通过变量是被this.xx来显示声明这个xx是实例变量,其余情况这个变量代表的是参数变量而不是实例变量,
2 可以根据位置来进行判断

  • 局部变量在代码块{},方法体{},参数的位置中
  • 成员变量在方法外

3 三种变量存储位置的区别

  • 实例变量也就是类的属性,存储在堆中,作用域局限于实例对象中,没有static修饰,属性都有默认值,可以不赋值
  • 静态变量也叫类变量或全局变量,在方法区中,有static修饰,作用域是整个类,有各种修饰符可以使用除了fianl,都有默认值,可以不赋值
  • 局部变量的值存储在栈中

4 三种变量作用域的区别

  • 局部变量的值存储在栈中,方法结束后就会被清理,说白就是从局部变量的声明,待方法的’}'结束为止
  • 实例变量用this(本类可以缺省)或其他对象通过’.'来调用
  • 静态变量可以使用类(本类类名可缺省)或对象通过’.'来调用

5 三种变量声明周期的区别

  • 局部变量:每一个线程,每一个执行都是新的生命周期
  • 实例变量:随着对象的创建被初始化,随着对象的回收而消亡,每一个对象的实例变量是独立的
  • 类变量:随着类的创建被初始化,随着类的回收而消亡,该类的所有对象的类变量是共享的

6 三种变量生命周期的区别

  • 局部变量只能有final修饰,没有默认值必须进行显示赋值
  • 实例变量可以被全部的修饰符修饰,如public volatile fianl…
  • 静态变量不能被fianl修饰,其它的均可

JVM内存参考
在这里插入图片描述
堆:唯一的作用就是存放实例变量,主要是数据和对象实例
虚拟机栈:简称栈,用于存储各种类型的局部变量,方法执行完自动释放
方法区:用于存储常量,静态变量,已被虚拟机加载的类信息和即使编译后产生的代码数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值