面向对象----变量(Variable)

本文详细介绍了Java中变量的概念,包括数据类型、变量名、变量值,以及基本数据类型和引用数据类型的区别。讨论了成员变量和局部变量在声明位置、内存位置、生命周期、作用域、初始化方式和修饰符上的差异。还涵盖了对象数组的声明、初始化和内存分析。最后,文章讲解了方法参数传递机制,包括实参和形参的关系以及基本数据类型和引用数据类型的传递差异。
摘要由CSDN通过智能技术生成

变量
1、变量是用来存储数据的,代表了一块内存区域。
2、变量有三个要素:
(1)数据类型
(2)变量名
(3)变量值

数据类型:可以是Java的8种基本数据类型,也可以是Java的引用数据类型(包括数组、类等)
变量值:如果是基本数据类型,那么变量中存储的是数据值,
       如果是引用数据类型,那么变量中存储的是地址值。

3、给变量赋值
基本数据类型:赋基本数据类型的值            int i = 1;
            会有一个自动类型转换的过程   double d = 1;//自动类型提升
引用数据类型:必须给他new对象            MyDemo my = new MyDemo();
                                     String str = "hello";  "hello"也是一个对象
4、变量根据声明位置不同,可以分为:
(1)成员变量:类中方法外面声明
(2)局部变量:方法中声明   方法的()中形参列表,方法体的{}中

5、成员变量和局部变量的区别
(1)声明位置不同
(2)内存中的位置不同
成员变量:
    静态成员变量:方法区
    非静态的成员变量:堆
    局部变量:栈
(3)生命周期不同
成员变量:
    静态成员变量:最长   随着类的加载和初始化而初始化,或者静态变量的生命周期 = 类的生命周期
    非静态的成员变量:中等  每一个对象的实例变量的生命周期= 对象的生命周期
                           当new一个对象时,该对象的实例变量/非静态成员变量就分配内存,
                           当对象被GC回收后,内存释放。
局部变量:短命         每一次方法调用,局部变量都是独立,随着方法调用在栈中分配它的内存,方法调用结束,内存就自动释放。
(4)作用域
成员变量:
    静态成员变量:在本类中任意位置都可见
    非静态的成员变量:只能在本类的非静态方法中可以用
            因为本类中静态的不能直接使用非静态(*****)
    局部变量:作用域是非常小的,从声明处开始,到它所属的{}就结束了,
        可能是作用域在一个方法中,可能只是某个if的{},可能是某个for{}中
(5)初始化的方式不同
成员变量:
    如果没有手动初始化,会有默认值。
    静态成员变量:在类初始化时完成。(早)
    非静态成员变量:在new对象时完成。(晚)
局部变量:
    必须手动初始化。
    形参的初始化是发生在方法调用时,由实参给形参初始化。
    方法体中的局部变量,必须手动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值