美文网首页
java 变量与对象的生命周期

java 变量与对象的生命周期

作者: 浮生未歇ywp | 来源:发表于2018-01-16 13:12 被阅读0次

一, 变量的生命周期与范围

只要变量的堆栈块还存在于堆栈上,变量就算活着.也就是说活到方法执行完毕为止.

局部变量的范围只限于申明他的方法之内. 当此方法调用别的方法时,该变量还活着,但不在目前的范围内. 执行其他方法完毕返回时,范围也就跟着回来.

public void doStuff(){ //运行在堆栈,
    boolean b = true; //存活于 doStuff 之中
    go(4); //调用 go 

    //执行完毕后 b 死去
}
public void go(int x){
    int z = x + 24; //x, z, b 都存活, 但 b 不在 go 的范围之中 
    crazy(); //调用 crazy
    //执行完毕后返回 doStuff x, z 死去
}
public void crazy(){
    char c = 'a'; //x, z, b, c 都存活,但只有 c 在 crazy 的范围之中
    
    //执行完毕后返回 go c 死去
}

引用变量与 primitive 主数据类型相同, 引用变量只有能在处于它的范围之内才能被使用.

二, 对象的生命周期

只要有活着的引用, 对象也就活着. 如果某个对象的引用已经不再他的范围中,但此对象的引用还是活着的, 则此对象就会继续活在堆上

如果对象的唯一引用死了,对象就会从堆中被踢开 ( 变成可回收的 ). 引用变量会跟着对象一块解散.

释放对象的三种方法,

  • 引用永久性的离开他的范围
public void go(){
    Life l = new Life(); // l 在方法执行完毕的时候消失
}

  • 引用被赋值到其他对象上
Life l = new Life(); //该对象会在 l 被赋值到别处时消失
l = new Life(); //
  • 直接将引用赋值为 null
Life l = new Life();//该对象会在 l 被赋值 null 时消失
l = null;

相关文章

  • java 变量与对象的生命周期

    一, 变量的生命周期与范围 只要变量的堆栈块还存在于堆栈上,变量就算活着.也就是说活到方法执行完毕为止. 局部变量...

  • Java编程性能优化技巧,干货分享!

    Java编程性能优化技巧,干货分享! 此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会常驻内存,...

  • 关于对象

    1、Java不需要销毁对象 ①作用域(scope):决定了其内定义的变量名的可见性和生命周期。 ②对象的作...

  • JAVA 的值传递

    JAVA 的值传递 预备知识 对象变量与对象在 Java 中,任何对象变量的值都是对存储在另外一个地方(堆)的一个...

  • 面向对象编程基础

    类与对象 成员变量 -在Java中对象的属性也称为成员变量,成员变量的定义与普通变量的定义一样 成员方法 1.成员...

  • Java对象生命周期

    Java对象生命周期图 创建阶段(Created) 分配存储空间 开始构造对象 父类到子类依次初始化类变量 父类成...

  • 2019-07-20

    变量: 1、局部变量(local) 2、成员变量,从属于对象,生命周期伴随对象始终。 3、静态变量 static,...

  • Java对象的生命周期

    Java对象的生命周期 在Java中,对象的生命周期包括以下几个阶段 创建阶段(Created)在创建阶段系统通过...

  • Android优化-内存优化总结篇

    一、Android内存管理机制 1、Java对象的生命周期 Java对象的生命周期经历7个阶段,分别是创建阶段、应...

  • IOS 成员变量,全局变量,局部变量定义,static与exte

    1,先说定义 1)成员变量定义:生存与该类的生命周期,变量存活周期跟你定义的该类实体对象一样;作用域是整个实体对象...

网友评论

      本文标题:java 变量与对象的生命周期

      本文链接:https://www.haomeiwen.com/subject/rwjsoxtx.html