美文网首页
9.构造器与垃圾收集器

9.构造器与垃圾收集器

作者: ccc_74bd | 来源:发表于2017-09-20 20:27 被阅读0次

堆(heap)——对象、对象的实例变量在堆上
栈(stack)——方法调用和局部变量在栈上

  1. 实例变量:实例变量是被声明在类而不是方法里面。实例变量存在于所属的对象中(堆上)。
    局部变量:局部变量和方法的参数都是被声明在方法中。它们是暂时的,且生命周期只限于方法被放在栈上的这段期间(也就是方法调用至执行完毕为止)
  2. 当你调用一个方法时,该方法会放在调用栈的栈顶,执行完成后它就被释放掉
  3. 构造函数(可以自己写,否则编译器会帮你写一个)
    (1)构造函数在新建一个对象的时候执行,唯一能够调用构造函数的方法就是新建一个类
    (2)构造函数的名称一定要与类名相同,构造函数没有返回类型
    (3)构造函数会在对象能够被引用之前就执行
    (4)可以用构造函数给对象的实例变量赋值或设置实例变量
    (5)可以给类设置两个构造函数,一个用来设定默认值(没有参数传入的情况下),另一个用接收的参数给对象赋值。
    (6)如果已经写了一个有参数的构造函数,并且需要一个没有参数的构造函数,则必须自己动手写
    (7)如果类有一个以上的构造函数,则参数一定要不一样(参数的顺序与类型,而不是参数名)
  4. 父类的构造函数
    (1)在创建新对象时,所有继承下来的构造函数都会执行
    (2)方法的调用按栈的结构来进行,最早调用,最晚释放
    (3)在子类的构造函数中调用super()会把父类的构造函数放在堆栈的最上方(如果没有调用,编译器会自动帮你加上),对super()的调用必须是构造函数的第一个语句
    (4)使用this()来从某个构造函数调用同一个类的另外一个构造函数
    this()只能用在构造函数中,且必须是第一行语句。
    super()与this()不能兼得
  5. 变量的生命周期
    (1)局部变量只会存活在声明该变量的方法中,局部变量只能在声明它的方法在执行中才能被使用
    (2)实例变量的寿命与对象相同,如果对象还活着,则实例变量也会是活的
  6. 当最后一个引用消失时,对象就会变成可回收的
  7. 有3种方法可以释放对象的引用
    (1)引用永久性的离开他的范围
    (2)引用被赋值到其他的对象上
    (3)直接将引用设定为null

相关文章

  • 9.构造器与垃圾收集器

    堆(heap)——对象、对象的实例变量在堆上栈(stack)——方法调用和局部变量在栈上 实例变量:实例变量是被声...

  • OnJava8_初始化和清理

    Java对象初始化通过构造器,清理通过垃圾收集器(Garbage Collector, GC) 构造器 无参构造函...

  • Java 垃圾收集器

    1、CMS收集器 CMS收集器是老年代垃圾收集器,可以与Serial收集器、Parallel New收集器搭配使用...

  • G1垃圾收集器实现原理

    1 与垃圾收集器有关的算法 在分析G1前先简单回顾一下与垃圾收集器相关的算法。通常所谓的垃圾收集器更多地是指跟踪垃...

  • JVM学习笔记之垃圾收集器【五】

    垃圾收集器 HotSpot 包含的垃圾收集器 一、串行收集器 1.1、Serial 收集器 在 JDk1.3 之前...

  • HotSpot垃圾收集器

    HotSpot虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,没有最好的垃圾收集器,只有最适合的垃圾收集器 ...

  • 5种JVM垃圾收集器特点和8种JVM内存溢出原因

    先来看看5种JVM垃圾收集器特点 一、常见垃圾收集器 现在常见的垃圾收集器有如下几种: 新生代收集器: Seria...

  • 垃圾收集器

    简介  垃圾收集器是垃圾收集算法的具体实现,各种垃圾收集器没有好坏之分,适合自己当前应用的垃圾收集器才是最好的垃圾...

  • Java虚拟机04--垃圾收集器

    垃圾收集器Serial收集器ParNew收集器Parallel Scavenge收集器Parallel Old收集...

  • 垃圾收集器整理&Java8默认垃圾回收器

    垃圾收集器整理 1.Serial 垃圾收集器(单线程、复制算法) 2.ParNew 垃圾收集器(Serial+多线...

网友评论

      本文标题:9.构造器与垃圾收集器

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