Java关键术语

  • JavaAPI:一系列帮助开发者创建Java应用程序的封装好的库。
  • Java 开发工具包 (JDK):一系列工具帮助开发者创建Java应用程序。JDK包含工具编译、运行、打包、分发和监视Java应用程序。
  • Java 虚拟机(JVM):JVM是一个抽象的计算机结构。Java程序根据JVM的特性编写。JVM针对特定于操作系统并且可以将Java指令翻译成底层系统的指令并执行。JVM确保了Java的平台无关性。
  • Java 运行环境(JRE):JRE包含JVM实现和Java API。

Java HotSpot 虚拟机

每种JVM实现可能采用不同的方法实现垃圾回收机制。在收购SUN之前,Oracle使用的是JRockit JVM,收购之后使用HotSpot JVM。目前Oracle拥有两种JVM实现并且一段时间后两个JVM实现会合二为一。

HotSpot JVM是目前Oracle SE平台标准核心组件的一部分。在这篇垃圾回收教程中,我们将会了解基于HotSpot虚拟机的垃圾回收原则。

JVM体系结构

下面图片总结了JVM的关键组件。在JVM体系结构中,与垃圾回收相关的两个主要组件是堆内存和垃圾回收器。堆内存是内存数据区,用来保存运行时的对象实例。垃圾回收器也会在这里操作。现在我们知道这些组件是如何在框架中工作的。

Java堆内存

我们有必要了解堆内存在JVM内存模型的角色。在运行时,Java的实例被存放在堆内存区域。当一个对象不再被引用时,满足条件就会从堆内存移除。在垃圾回收进程中,这些对象将会从堆内存移除并且内存空间被回收。堆内存以下三个主要区域:

1、新生代(Young Generation)

Eden空间(Eden space,任何实例都通过Eden空间进入运行时内存区域)

S0 Survivor空间(S0 Survivor space,存在时间长的实例将会从Eden空间移动到S0 Survivor空间)

S1 Survivor空间 (存在时间更长的实例将会从S0 Survivor空间移动到S1 Survivor空间)

2、老年代(Old Generation)实例将从S1提升到Tenured(终身代)

3、永久代(Permanent Generation)包含类、方法等细节的元信息

永久代空间在Java SE8特性中已经被移除。

最新文章

  1. Tomcat常见问题汇总
  2. Load Runner录制C/S客户端
  3. 【福吧资源网整理】老男孩-python运维6期 不加密
  4. angularJS ng-grid 配置
  5. HashMap,HashTable,TreeMap区别和用法
  6. win7 无法复制粘贴
  7. 数据库mysql的基本命令
  8. poj 3084 最小割
  9. 1104解决ecos挂件中数组传递的相关问题。
  10. Cocos2d-x在线粒子编辑器
  11. Contiki 源代码目录结构
  12. SharePoint 调查添加图片支持
  13. pycharm 激活码
  14. eclipse新建的项目,也添加到tomcat上了,地址栏访问的时候就是访问不到。。。怎么办
  15. luogu 1993 小K的农场
  16. CentOS下安装MYSQL8.X并设置忽略大小写
  17. scrapy之parallel
  18. 关于 Azure Windows VM 的磁盘和 VHD
  19. jenkins报错;自定义工作目录;
  20. php 目录操作

热门文章

  1. Android编译详解之lunch命令 【转】
  2. P1198 [JSOI2008]最大数(线段树)
  3. BZOJ_3790_神奇项链_manacher+贪心
  4. samba - linux客户端访问samba服务器的指令(转载)
  5. bzoj1528 sam-Toy Cars(贪心,优先队列)
  6. jQuery——表单应用(3)
  7. DFS BestCoder Round #49 ($) 1001 Untitled
  8. 思维题+set URAL 1718 Rejudge
  9. docker血一样的教训,生成容器的时候一定要设置数据卷,把数据文件目录,配置文件目录,日志文件目录都要映射到宿主机上保存啊!!!
  10. mysqlbinlog(日志管理工具)