今天去参加腾讯的面试,结果是一塌糊涂。把问道的问题进行整理,希望自己可以有所收获。摘取别人的文章原文

1.Java的内存管理就是对象的分配和释放

分配:内存的分配是程序完成的,程序员通过new关键字为对象申请内存空间(基本数据类型除外),对象都是在堆(Heap)中分配空间。

释放:对象的释放是由垃圾回收机制(Garbage Collection)来做的,GC为了能正确释放对象,需要监控每一个对象的运行状况,包括申请,引用,被引用,赋值等。

2.什么叫Java的内存泄漏(memory leak)

java中内存泄漏指存在一种被分配的对象,具有以下两个特点,首先它是可达的,即仍存在该内存对象的引用,其次它是无用的,也就是说程序不再引用该对象了,总结就是没用的对象分配的内存,但是还在引用(unused but still referenced)。内存泄漏的对象不会被GC回收,一直占用着内存。memory leak 最长见到的异常是OOM(outofmemeory)。

java代码

public class MemoryLeakDemo {    private static ListmemoryLeakArea = new ArrayList();

public static void main(String[] args) {

int iteration = 0;

while(true) {

Integer payload = new Integer(iteration);

memoryLeakArea.add(payload);

iteration ++;

}

}

}

java 内存管理_Java的内存管理机制相关推荐

  1. java 虚拟机内存管理_java虚拟机内存管理

    程序计数器: 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器. 程序计数器处于线程独占区 如果线程执行的是Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地 ...

  2. c++堆内存默认大小_Java 自动内存管理

    Java 与 C.C++ 最大的区别在于内存管理方面. 对于 C.C++来说, 在内存管理方面,既拥有每个对象的"所有权",又担负着每个对象生命从开始到终结的维护责任. 而对 Ja ...

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

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

  4. java中为什么还要防止内存泄露_JAVA防止内存的泄漏什么意思,内存还能泄露?...

    展开全部 尽管java虚拟机和62616964757a686964616fe59b9ee7ad9431333166353066垃圾回收机制管理着大部分的内存事务,但是在java软件中还是可能存在内存泄 ...

  5. java 堆内存结构_JAVA之内存结构

    概述 JAVA是我们现在最常用的开发语言,而他的垃圾回收机制(Garbage Collection)的重要作用不言而喻,以下简称GC,所以了解GC至关重要,现本人对于GC机制以前的理解和现在的理解记录 ...

  6. java虚拟机内存监控_java虚拟机内存监控工具jps,jinfo,Jstack,jstat,jmap,jhat使用...

    将会打印出很多jvm运行时参数信息,由于比较长这里不再打印出来,可以自己试试,内容一目了然 Jstack(Stack Trace for Java):JVM堆栈跟踪工具 jstack用于打印出给定的j ...

  7. java 内存溢出和内存泄漏_java中内存溢出和内存泄漏的区别

    虽然在java中我们不用关心内存的释放, 垃圾回收机制帮助我们回收不需要的对象,但实际上不正当的操作也会产生内存问题:如,内存溢出.内存泄漏 内存溢出:out of memory:简单通俗理解就是内存 ...

  8. java内存泄漏和内存溢出_Java和内存泄漏

    java内存泄漏和内存溢出 总览 术语"内存泄漏"在Java中的使用方式不同于在其他语言中使用的方式. 通用术语中的"内存泄漏"是什么意思,在Java中如何使用 ...

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

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

  10. java ppt转图片 内存溢出_Java虚拟机内存及内存溢出异常

    Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进来,墙里面的人却想出来. 不知道其他人想出来没,反正我是没想出来,为什么这个JVM的运行时内存要这样设计?. 以下内容 ...

最新文章

  1. 独家 | AI仍然受困于仇恨言论——但科学家们在衡量每个系统失败的地方正做得越来越好...
  2. 英特尔是个可以讲理的地儿
  3. [Zabbix] 怎样实现邮件报警通知以及免费短信报警通知
  4. java根据文件路径读取文件_java根据路径读取文件
  5. 数据挖掘在呼叫中心的六大应用点
  6. 鸿蒙手机是个噱头,华为鸿蒙不是谈判噱头 必要时会应用手机当中!
  7. 30行Python代码来绘制一个微信图标
  8. memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
  9. 基于C#的MongoDB数据库开发应用(4)--Redis的安装及使用
  10. CentOS 5.2 LVM 新增加一块硬盘的方法
  11. C# -- 使用FileInfo获取文件信息
  12. c#中两种不同的存储过程调用与比较
  13. C++字符编码的查看和检测
  14. TCP滑动窗口协议作用
  15. Linux学习(4)-文件颜色,绿色,蓝色,白色,红色等代表的意义
  16. 【CI/CD】详解自动化开发之CI/CD(持续集成、持续交付、持续部署)
  17. 天啦噜!逾期未还三年,欠款3万变成34万
  18. solid。 设计原则
  19. 湖南中医药大学成考2022年下学期网络课程学习与考试工作安排
  20. 8086汇编工作环境_[C语言]什么是编辑器和编译器,什么是集成开发环境?编译原理又是什么?

热门文章

  1. php 5.6.22 漏洞,SugarCRM v6.5.23 PHP反序列化对象注入漏洞
  2. [教程]KALI LINUX 2.0 2021 更新国内源
  3. mysql性能视频教程_MySQL性能管理及架构设计视频教程
  4. 读民办大学的计算机科学与技术好就业吗,找工作起薪高的十大本科专业,计算机科学与技术仅排第六!...
  5. Asp.Net 初级 高级 学习笔记
  6. 对话机器人(二)——RASA概述与安装
  7. 《Python 深度学习》-弗朗索瓦 肖莱-(一)双系统ubuntu及TensorFlow系统安装
  8. 很文雅,很不错的句子(些许伤感)
  9. windows10 环境变量立即生效的坑
  10. OFDM学习笔记——PAPR问题