属性与局部变量的不同点

文章详细阐述了Java编程语言中属性和局部变量的区别,包括它们的声明位置、内存分配、生命周期、作用域、权限修饰以及默认值的情况。属性是类的成员,存储在堆中,有默认初始化值;局部变量存在于方法栈帧,需显式赋值,无默认值。
摘要由CSDN通过智能技术生成

1、类中声明的位置不同:

        属性:声明在类内、方法外的变量

        局部变量:声明在方法、构造器、代码块内部的变量

2、在内存中分配的位置不同:

        属性:随着对象的创建,存储在堆空间中

        局部变量:存储在方法对应的栈帧中

(字符串应该是先在常量池中,方法栈帧中应存放地址,未画)

3、生命周期:

        属性:随着对象的创建而创建,随着对象的消亡而消亡

        局部变量:随着方法对应的栈帧入栈,局部变量会在栈中分配,随着方法对应的栈帧出栈,局部变量消亡

4、作用域:

        属性:在整个类的内部都是有效的

        局部变量:仅限于声明局部变量所在的方法(或构造器、代码块等)中

5、是否可以有权限修饰符进行修饰:

        权限修饰符:public、protected、缺省、private

        属性:可以使用权限修饰符进行修饰

        局部变量:不能使用权限修饰符进行修饰

6、是否有默认值:

        属性:都是默认初始化值

                意味着如果未给属性进行显式赋值,也可以直接使用。

        局部变量:都没有默认初始化值。

                意味着在使用局部变量之前,必须要进行显式的赋值,否则使用则报错。

                

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值