在Java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:

一.给对象赋予了空值null,以下再没有调用过。

二.给对象赋予了新值,既重新分配了内存空间。

程序段1:

1.fobj = new Object ( )

2.fobj. Method ( )

3.fobj = new Object ( )

4.fobj. Method ( ) 问:这段代码中,第几行的fobj 符合垃圾收集器的收集标准?

答:第3行。因为第3行的fobj被赋了新值,产生了一个新的对象,即换了一块新的内存空间,也相当于为第1行中的fobj赋了null值。这种类型的题在认证0

考试中是最简单的。

程序段2:

1.Object sobj = new Object ( )

2.Object sobj = null

3.Object sobj = new Object ( )

4.sobj = new Object ( ) 问:这段代码中,第几行的内存空间符合垃圾收集器的收集标准?

答:第1行和第3行。因为第2行为sobj赋值为null,所以在此第1行的sobj符合垃圾收集器的收集标准。而第4行相当于为sobj赋值为null,所以在此第3行的sobj也符合垃圾收集器的收集标准。

分析:两题所问的垃圾回收的对象不同,第一题的垃圾回收是针对对象来说的,第二题的垃圾回收是针对内存空间来说的。

第一题分析,第一行是对象实例化,第二行是调用对象的方法,都没什么问题,第三行给这个对象重新做了一次实例化,也就是说这个对象做了两次实例化,分配了两次内存空间,我们给这两个内存空间编号,分别称为内存1和内存2,前两行内存指向内存1,第三行时对象改为指向内存2,也就是在这里,指向内存1的对象无用了,也就符合回收标准了,第四行是调用第三行新生成的对象的方法。

第二题分析,这一题问的符合回收标准的内存空间。第一行给对象分配了一块新的内存空间,第二行把对象赋空了,那么第一行分配的内存空间就没用了,符合回收标准了。第二行给对象赋空,没有分配内存空间,第三行给对象重新分配了一块内存空间,第四行又给对象分配了一块内存空间,那么第三行分配的内存空间就没用了,第三行的内存空间也符合回收彼标准了。

个人理解,有错请轻拍

java回收内存_JAVA之内存回收相关推荐

  1. java回收类_Java的内存回收——Java引用的种类

    1.Java引用的种类 Java是面向对象的编程语言,一个Java程序往往需要创建大量的Java类,然后对各Java类创建大量的Java对象,再调用这些Java对象的属性和方法来操作它们. 程序员需要 ...

  2. java 内存回收参数_JAVA虚拟机内存回收算法与调优参数

    一.相关概念 基本回收算法 引用计数(Reference Counting)比较古老的回收算法.原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数.垃圾回收时,只用收集计数为0的对象. ...

  3. java动态扩展_java栈内存动态扩展要怎么理解?要如何实现?

    小伙伴们知道如何在java栈中内存动态扩展吗?这是虚拟机中的一个概念,下面让我们一起来看看该如何实现吧. 一.内存概念 在java中,我们一般会简单把java内存区域划为两种:堆内存与栈内存.其实这种 ...

  4. java 垃圾回收机制_Java的垃圾回收机制

    前言 在C++语言中, 程序员必须小心谨慎的处理每一项内存分配, 且内存使用完后必须手动释放曾经占用的内存空间.当内存释放不够完全时, 即存在分配但永不释放的内存块, 就会引起"内存泄漏&q ...

  5. java堆内存_java堆内存详解

    http://www.importnew.com/14630.html java堆的特点 <深入理解java虚拟机>是什么描述java堆的 Java堆(Java Heap)是java虚拟机 ...

  6. java中垃圾收集_Java中垃圾回收机制

    "猪能吃的是湿垃圾,猪不吃的是干垃圾,猪吃了会死的是有害垃圾,卖了能买猪的是干垃圾 ......"最近,上海人民都快被垃圾分类弄疯了.那作为程序员的你,知道在Java中是怎么垃圾回 ...

  7. 4服务器内存和普通内存_Java服务器内存过高CPU过高问题排查

    一.内存过高 1.内存过高一般有两种情况:内存溢出和内存泄漏 (1)内存溢出:程序分配的内存超出物理机的内存大小,导致无法继续分配内存,出现OOM报错 (2)内存泄漏:不再使用的对象一直占据着内存不释 ...

  8. java 内存_java节省内存的几条建议

    java节省内存的几条建议 引导语:Java的主要工作是通过编程语言来制作互联网页面.制作动态效果以及网站等技术,以下是小编整理的java节省内存的几条建议,欢迎参考阅读! 1. 尽量在合适的场合使用 ...

  9. java 看虚拟机内存_java 虚拟机内存介绍

    已经入行快有两年了,然而没有认真看过java虚拟机内存的介绍,下面把自己看的关于java虚拟机内存的介绍写下来,分享给大家. java 虚拟机在运行时将内存分为几个区域,分别为程序记数区,java虚拟 ...

最新文章

  1. 苦了我一年的选择,现在却是我最回味的时光
  2. S - C语言实验——余弦
  3. URL.createObjectURL图片预览
  4. Windows2000、XP、2003系统万能Ghost全攻略
  5. android利用线程池高效实现异步任务
  6. mysql5.1查询分析语句_MySQL 查询数据_mysql 查询语句_SELECT语句
  7. JavaScript继承方式详解
  8. python输出unicode字符_如何在Python中打印Unicode字符?
  9. 泛微协同办公平台E-cology9.0版本最全帮助文档
  10. Niagara Networks网络安全出口解决方案
  11. 51单片机温控风扇仿真原理图 C语言程序,AT89C51单片机的电风扇控制系统设计+流程图+仿真图.doc...
  12. 松翰单片机之汇编编程
  13. 系统设计师之路·第三节·一花一世界,一叶一菩提——无处不在的设计思想
  14. UI设计初学者必备的工具以及学习路线(附思维导图)
  15. ipad能不能装python_ipad能下载python么
  16. 小小知识点(一):辨别性相似度(Discriminative Similarity)
  17. 安百拓西安仓储物流中心正式运营;中外运敦豪广东分公司迁新址 | 美通企业日报...
  18. 基于深度学习的手写数字识别Matlab实现
  19. Android自定义控件之实现快速检索
  20. 私域流量变现有哪些方式?

热门文章

  1. 从实操教学到赛题演练,腾讯专家亲授TI-ONE平台操作攻略!
  2. 娓娓道来!那些BERT模型压缩方法(一)
  3. linux查看程序中最耗时的代码,【Linux】CPU时间与处理器耗时
  4. Leetcode每日一题:1024.video-stitching(视频拼接)
  5. CN笔记:第一章 计算机网络概述
  6. Leetcode每日一题:50.powx-n
  7. Java产生死锁的一个简单例子
  8. SpringBoot实战教程(1)| 整合Swagger3.0.0
  9. oracle内置函数 wmsys.wm_concat使用
  10. css 一些好玩的属性,推荐一些比较有用的css3新属性