官方文档见:http://docs.sun.com/source/819-0084/pt_tuningjava.htmljava启动参数共分为三类;其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有j...
分类:
编程语言 时间:
2014-08-03 20:35:15
阅读次数:
272
Tomcat架构图 Tomcat与JVM版本优化Tomcat的运行是基于Java的虚拟机。SUN的JVM动态库有client和server两个版本,分别针对桌面应用和服务器应用做了相应的优化,client版本加载速度较快,server版本加载速度较慢但运行起来较快。在命令行输入 java -vers...
分类:
其他好文 时间:
2014-08-03 20:31:15
阅读次数:
550
基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unboxing)是J2SE 5.0提供的新功能,跟泛型、变长参数等一样,这也是一颗“语法糖”,之前介绍jvm早期优化的时候说过,语法糖对运行期的代码没有任何影响,其目的仅仅是方便程序员使用,所有语法糖编译后都将会还原成基础语法。这次介绍的自动装箱和拆箱也不例外。看下头的例子:
public class Demo
{
...
分类:
编程语言 时间:
2014-08-02 20:57:44
阅读次数:
313
(1)引用计数法
这是最经典和最古老的一种,它的工作原理是为每个对象配备一个计数器,只有这个对象被引用了,引用计数器就加1,当引用失效时,计数器减一,只要计数器为0,意味着不再被使用,于是该对象就可以被回收了。
优点:实现简单;
缺点:无法处理循环引用情况。即有应该被回收的垃圾对象A、B,他们互相引用,除此之外无其他引用,然而他们计数器值不是0,因此无法回收,从而造成内存泄漏。
(2...
分类:
编程语言 时间:
2014-08-02 18:31:14
阅读次数:
257
复制算法,它将堆上的内存分为两个大小相等的区域,一个是空闲区域,一个是活动区域。在程序运行中,实际使用的是活动区域,也就是有50%的空间被浪费掉。 复制算法的实现过程:1.找出活动空间中所有存活的对象。2.将这些存活的对象复制到空闲区域。3.将之前的活动空间清空,然后,就变为空闲空间了,而...
分类:
其他好文 时间:
2014-08-02 12:18:43
阅读次数:
199
the Gemfire consultant add one more parameter to JVM -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider to be honest, I had no idea what it was. so I googled it. the key thin...
分类:
编程语言 时间:
2014-08-02 01:57:13
阅读次数:
235
下面我们这篇博客来说一下java中是怎么合理的利用内存的,怎么将内存进行划分,做到各司其责,使系统平稳高效运行。
首先要知道的是java程序运行在JVM上,可以把JVM理解成java程序和操作系统之间的桥梁。因此JVM是内存分配原理的基础和前提。
一个完整的java运行程序会涉及一下内存区域:
(1) 寄存器(registers):JVM内部虚拟寄存器,这是速度最快的最快的存储...
分类:
编程语言 时间:
2014-08-01 19:43:52
阅读次数:
227
Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。 如下图,Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode) 2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所...
分类:
编程语言 时间:
2014-08-01 13:23:41
阅读次数:
272
JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明。 ....
分类:
编程语言 时间:
2014-08-01 12:53:21
阅读次数:
326
java 垃圾回收步步深入01----整体印象
一.总体概念
1.垃圾收集:不再使用的内存空间应该被回收
2.在C/C++语言中,垃圾回收由程序员负责
3.在Java中,它提供了一种系统级线程跟踪存储空间分配情况,在JVM空闲时,检查并释放可被释放的存储空间。垃圾收集在Java程序运行中是自动收集的,程序员无法干预。
4.垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身
5...
分类:
编程语言 时间:
2014-08-01 09:19:41
阅读次数:
256