jvm
文章平均质量分 56
nick00221
这个作者很懒,什么都没留下…
展开
-
JVM垃圾回收与内存分配(一)
概述 垃圾回收,GC,出现的时间比java要长很久。一直以来GC所研究的问题就是三个: 1、哪些东西需要回收? 2、什么时候回收? 3、如何回收? 通过JVM的内存管理我们可知,程序计数器、虚拟机栈、本地方法栈都是线程私有的空间,生命周期与线程相同,其所需要的空间大小也是在编辑器可以确定(虽然可以动态修改,但影响不大)。顾JVM的内存回收主要是针对虚拟机堆和方法区进行回收。 一个对象如原创 2014-11-30 12:02:52 · 455 阅读 · 0 评论 -
JVM垃圾回收与内存分配(二)
垃圾收集算法 垃圾收集算法很多种,最基础的是标记-清除算法,其他都是根据这个算法对其不足进行改进。具体实现比较复杂,故只介绍基本思路。 标记-清除算法 垃圾收集中最基础的算法,它分为标记和清除两个阶段,标记阶段在上一篇文章《 JVM垃圾回收与内存分配(一) 》中介绍的标记过程一样,首先标记出所有需要回收的对象,然后统一回收。它主要有两个缺点: 1、效率问题,标记和清除两个过程的效率都不高。原创 2014-12-01 08:49:03 · 406 阅读 · 0 评论 -
JVM内存管理-运行时数据
序 Java的内存管理是由虚拟机自动进行,程序员不得自行干预,若出现内存溢出等情况,若不了解jvm的运行原理,很难解决问题。此片文章是阅读了JVM规范之后的一些感想,用自己理解的方式进行表述。 运行时数据 根据java虚拟机规范,Java的运行时数据如下图所示: 解释 1、程序计数器 程序计数器是记录程序运行到哪一行的行号。java的多线程,每一时刻,只能有一个线程在进行(根据原创 2014-11-29 16:53:24 · 433 阅读 · 0 评论 -
JVM内存管理-对象访问
程序运行时,最基本的需要使用jvm中的栈、堆、方法区,这三部分内容。 栈,存放了方法所需要的局部变量等信息。 堆,存放了类的实例化数据(即对象)。 方法区,存放了类的相关信息(class文件的信息),比如父类、接口等信息。 以下段代码为例: Object obj = new Object(); 它对应的内存示例如下图所示: 以上部分是比较基础的,但是stack和heap和方法原创 2014-11-30 11:05:07 · 408 阅读 · 0 评论 -
学习Libgdx游戏开发(三)-使用libgdx创建项目
开始前的废话 本打算将书中内容原封不动的翻译一下的,但是发现有些东西没用,而且翻译出来的语言不够通顺连贯,看起来也不方便。从这篇开始修改一下方式,书我还是一行一行的度,但是打算按照知识点来发布文章(之前是按照原书的章节来发布)。也就是说书中的内容讲过我的理解以后再通过我的语言组织一下表述出来的。为保证质量,书中提到的知识点我是不会落下的,全部都有。 工具及版本 1、libgdx我使用的是0.原创 2014-12-02 13:17:14 · 698 阅读 · 0 评论 -
学习Libgdx游戏开发(四)
游戏分为两部分: 游戏资源和游戏逻辑 游戏资源,是你游戏中用到的所有资源,比如:图片、声音效果、背景音乐、等级数据。 游戏逻辑,游戏逻辑负责追踪有戏当状态,这些状态是之前定义好的。状态的改变是随着时间的推移由玩家触发事件或游戏本身改变状态。比如,玩家按下一个按钮、选择一个菜单项、敌人向玩家发出攻击,游戏逻辑将会采取适当的行为。它约束这玩家与游戏者的互动和游戏应该对玩家做出什么反应。 游戏原创 2014-12-03 09:39:48 · 506 阅读 · 0 评论