资讯专栏INFORMATION COLUMN

Java学习笔记——局部变量和成员变量

whjin / 3242人阅读

摘要:局部变量定义在方法中的变量。初始值成员变量它存储在堆中,如果没有赋初值,它有默认值整数局部变量要想使用必须手动初始化注意事项局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

声明:本文首发于我的个人微信公众号【Java编程社区】,查看更多文章与学习资源请移步我的公众号Java编程社区

成员变量:定义在类中的变量。
局部变量:定义在方法中的变量。

成员变量与局部变量的区别: 1、应用范围

成员变量在整个类中有效

局部变量只在其声明的方法中有效

2、生命周期

成员变量:它属于对象,它随着对象的创建而创建,随着对象的消失而消失

局部变量:使用完马上释放空间

看段代码

void show(int id){
        for (int i = 0; i < 10; i++) {         
           for (int j = 0; j < 10; j++) {
                System.out.println(id);
            }
        }
    }

这里的id,i,j都是在方法内声明的,因此都是局部变量

id在show方法被调用时它的生命周期开始,方法结束时id消失

j当里层for循环执行时生命周期开始,当里层for结束,j消失

3、存储位置

成员变量属于对象,它存储在堆内,堆内的实体,当没有引用指向其时,才被垃圾回收处理。

局部变量存在于栈内存中,当不在使用时,马上就会被释放。

4、初始值

成员变量它存储在堆中,如果没有赋初值,它有默认值

整数byte,short,int,long = 0

char = "u0000"

boolean = false

String = null

float,double = 0.0

局部变量要想使用必须手动初始化

注意事项:

局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

内存分析
class Car {
    //汽车应该具备的属性
    String color;
    //汽车具备的颜色
    int num;    
    //汽车跑的行为
    public void run(){
        System.out.println(color + "的车,轮胎数: " + num + "个,跑起来了");
    }
}

public class CarDemo {
    public static void main(String[] args) {
        //创建实体
        Car car = new Car();
        car.color = "red";
        car.num = 4;        
        //指挥车运行,调用格式:对象.对象成员
        car.run();
    }
}

这里car其实是对象的引用,它存储的是一地址,这个地址指向了堆里的一块内存。这里的color和num都是成员变量,null和0是它们的默认值,"red"和4是赋给它们的初始值。

最后再来看个例子

class Variable {
    int a; //成员变量a,默认值是0
    
    public void test() {
        int b = 20;//局部变量b,没有默认值,需要初始化
        System.out.println(b);//20        
        int a = 50;//局部变量a,和成员变量a的名称相同
        System.out.println(a);//50
    }
} 
class VariableDemo {
    public static void main(String[] args) {
        Variable variable = new Variable();
        
        System.out.println(variable.a); //0,variable.a访问成员变量
        
        variable.test();//调用成员方法             
    }
} 

代码执行结果:

今天就分享到这,后续会继续分享,敬请期待!
声明:本文首发于我的个人微信公众号【Java编程社区】,查看更多文章与学习资源请移步我的公众号Java编程社区

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76952.html

相关文章

  • Java学习笔记(一)

    摘要:是完全面向对象的语言,对象具有状态行为和标识。类一一是具有共同特征和行为的一类事物的统称。受保护的,对同一包内的类和所有子类可见。一种通用的内存池,用于存放所有对象。类级变量又称全局级变量或静态变量,需要使用关键字修饰。 java语言的基本特点 java语言是面向对象的高级程序设计语言,它是编译型的语言,Java语言不使用指针,并提供了自动的垃圾回收机制,使得程序员不必为内存管理而担...

    chengtao1633 评论0 收藏0
  • 并发学习笔记(1)

    摘要:共享数据使线程之间的通信比进程之间的通信更有效。并发模型和的区别说明的作用是启动一个新线程操作系统级别,有一个方法启动新线程,新线程会执行相应的方法。单独调用会在当前线程中执行并不会启动新线程创建一个线程即可但是这个线程没有执行任何代码段。 tutorials site 并发Concurrency发展的历史 单CPU,一次只能运行一个程序 -- 多任务,一次同时运行多个任...

    objc94 评论0 收藏0
  • java程序员的c语言学习笔记,一文快速了解

    摘要:结构体也可以包含结构体,就像内部类访问结构的属性和一样。。我觉得这个需要学下数据结构才能更好理解给数据类型起一个新名字则可以通过对于结构体我可以这样再通过变量名就可以简便的声明结构体变量。文件暂时过了一遍预处理器头文件就是扩展名为的文件。 ...

    FuisonDesign 评论0 收藏0
  • Java编程思想》笔记10.内部类

    摘要:但远不止如此,内部类了解外部类,并能与之通信。内部类还拥有其外围类的所有元素的访问权。普通内部类内不能有域和方法。特点普通内部类对象隐式的保存了外部类对象,但嵌套类并非如此。局部内部类可以访问当前代码块内的常量,以及此外围类的成员。 点击进入我的博客 可以把一个类的定义放在另一个类的定义内部,这就是内部类。Java最晦涩的部分之一。内部类看起来就像是一种代码隐藏机制,将类只与其他类的...

    wslongchen 评论0 收藏0
  • JAVA学习之路 (五) 类

    摘要:类的成员方法类的成员方法的定义中的使用之静态变量我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。 java类的学习 先上一个代码 package bankCard; import java.util.Scanner; // 银行卡类 public cl...

    luqiuwen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<