本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。
进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要 性。所以...
分类:
编程语言 时间:
2014-12-11 10:28:21
阅读次数:
286
本篇主要阐述一下java垃圾收集的几种算法。其中主要包括:复制算法、标记-清除算法、标记-压缩(清理)算法和分代收集算法。下面简单介绍一下其实现的原理。
1、复制算法...
分类:
编程语言 时间:
2014-12-11 00:23:49
阅读次数:
307
通过第一篇文章,大家明白了调用native方法之前,首先要调用System.loadLibrary接口加载一个实现了native方法的动态库才能正常访问,否则就会抛出java.lang.UnsatisfiedLinkError异常,找不到XX方法的提示。现在我们想想,在Java中调用某个native方法时,JVM是通过什么方式,能正确的找到动态库中C/C++实现的那个native函数呢?...
分类:
编程语言 时间:
2014-12-11 00:20:59
阅读次数:
218
本篇主要介绍一下,JVM运行时数据区的内容。
首先大概介绍一下下图所示的内容。JVM运行时数据区主要分为了两大部分的内容:线程共有的方法区(Method Area)和堆(Heap)、线程私有的虚拟机栈(VM Stack),本地方法栈(Native Method Stack)和程序计数器(Program Counter Register)。在数据区下面的执行引擎中又包含了:即时编译器(JITCom...
分类:
其他好文 时间:
2014-12-10 21:21:10
阅读次数:
267
Java Heap和Method Area是JVM中内存占用最大的区域,也是监控和调优的重点。 下图使用jvisualvm工具截取,Perm是永久代(Permanent Generation)、Old是年老代(Old Generation)、Eden Space 和S0+S1是年轻代(Y...
分类:
数据库 时间:
2014-12-10 18:19:13
阅读次数:
254
3.Java术语JVM - java虚拟机 JVM将 java 字节码程序翻译成机器语言。然后由计算机执行。JRE - java 运行环境 JRE 是由JVM 和 java platform 核心类以及相关支撑文件组成。API - Application programming interfac.....
分类:
编程语言 时间:
2014-12-10 17:52:11
阅读次数:
260
这篇说说如何从JVM的角度来理解线程,可以对Java的线程模型有一个更加深入的理解,对GC的一些细节也会理解地更加深刻。本文基于HotSpot的OpenJDK7实现。
我们知道JVM主要是用C++实现的,JVM定义的Thread的类继承结构如下:
Class hierarchy
- Thread
- NamedThread
- VMThread
-...
分类:
编程语言 时间:
2014-12-10 14:20:18
阅读次数:
212
/*
java的跨平台的原因:JVM
JVM:负责java程序的执行
JRE:java程序运行时的环境,包含了JVMa
JDK:开发工具包,包含了JRE
为什么在环境变量path中设置jdk的安装路径:为了在任何路径下都能使用bin目录下的可执行命令
java源程序:先编译成jvm可以执行的字节码,使用javac指令,再使用java指令执行字节码文件(必须是含有main方法的那个字节码...
分类:
编程语言 时间:
2014-12-10 14:16:10
阅读次数:
279
Java技术体系中的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。对象的内存分配往大的方向上讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲(-XX:+UseTLAB,默认已开启),将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取决于当前使用的是哪一种垃圾收集器...
分类:
编程语言 时间:
2014-12-10 14:14:49
阅读次数:
207
为了获取更好的性能,我们常常需要将tomcat进行集群部署。下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞。 应用场景环境: server1 服务器上安装了 nginx + tomcat01 server2 服务器...
分类:
其他好文 时间:
2014-12-10 10:28:25
阅读次数:
263