本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。
进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要 性。所以...
分类:
编程语言 时间:
2014-12-11 10:28:21
阅读次数:
286
android基本架构Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。 Android主要应用于A...
分类:
移动开发 时间:
2014-12-11 00:09:40
阅读次数:
239
3.Java术语JVM - java虚拟机 JVM将 java 字节码程序翻译成机器语言。然后由计算机执行。JRE - java 运行环境 JRE 是由JVM 和 java platform 核心类以及相关支撑文件组成。API - Application programming interfac.....
分类:
编程语言 时间:
2014-12-10 17:52:11
阅读次数:
260
Java技术体系中的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。对象的内存分配往大的方向上讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲(-XX:+UseTLAB,默认已开启),将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取决于当前使用的是哪一种垃圾收集器...
分类:
编程语言 时间:
2014-12-10 14:14:49
阅读次数:
207
多线程的两种创建方式:
下面这些东西是API文档中的:
public class Thread
extends Object
implements Runnable
线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。
每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代...
分类:
编程语言 时间:
2014-12-10 00:32:49
阅读次数:
237
ABC12初级开发人员3技术分类具体知识点4Java基础、核心语法、数组JDK的安装和配置、Java技术架构、JAVA虚拟机的原理和运行机制; 数组的使用与介绍、一维数组与多维数组的定义、创建和初始化、各种数据类型的数组、Arrays工具类、冒泡排序、选择排序、二分查找。5面向对象程序设计、异常处理...
分类:
其他好文 时间:
2014-12-09 22:59:48
阅读次数:
283
本文引自《深入理解Java虚拟机》的3.3节。 标记 -清除算法 最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在...
分类:
编程语言 时间:
2014-12-09 20:02:27
阅读次数:
209
本文部分参考自《Java虚拟机规范(Java SE 7版)》的中译本和周志明的《深入理解Java虚拟机》,另加个人理解。原书对Java虚拟机运行时数据区描述只有6页,同时参考其他网络网资料,个人能力所限,不排除存在认知错...
分类:
编程语言 时间:
2014-12-09 17:58:31
阅读次数:
275
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对象垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同版本的虚拟机所提供的收集器可能会有很的差别,并且一般会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。下面是Sun HotSpot虚拟机1.6版本Update22包含的所有收集器:
上图中,如果两个收集器之间存在连线,就...
分类:
编程语言 时间:
2014-12-09 17:43:07
阅读次数:
211
当对象判定为"已死"状态,虚拟就要采取一定的手段将这些对象从内存中移除,即回收垃圾,回收过程有采用一定的算法。如下是一些主要的垃圾收集算法:
1.标记-清除算法
该算法是最基础的算法,分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。之所有说它是最基础的算法是因为后续的收集算法都是基于这种思路并对其缺点进行改进得到的。它的缺点主要有两个...
分类:
编程语言 时间:
2014-12-09 10:37:18
阅读次数:
191