
Jvm
lvwenwenjava
这个作者很懒,什么都没留下…
展开
-
深入java虚拟机
类的运行步骤:1.加载(从硬盘到内存)---->链接(验证,准备(静态变量),解析)(都是静态变量,只有对象的时候才会有实列变量)----->初始化 Jvm:静态变量存在方法区中,实例变量存在堆内存中,的说原生数据类型传递的值,引用类型传递的地址,Heap和Method Area是共享的,其他都是私有的, 堆中存的是对象。栈中存的是基本数据类型和堆中...原创 2012-06-06 09:33:16 · 98 阅读 · 0 评论 -
一个优秀的Java程序员必须了解GC机制
一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。本文将从GC的工作原理、GC的几个关键问题进行探讨,最后提出一些Java程序设计建议,如何从GC角度提高Java程序的性能。 GC的基本原理 GC是什么? 为什么要有G...原创 2015-01-16 17:04:44 · 191 阅读 · 0 评论 -
深入Java虚拟机之内存优化
前面一篇文章介绍了Java虚拟机的体系结构和内存模型,既然提到内存,就不得不说到内存泄露。众所周知,Java是从C++的基础上发展而来的,而C++程序的很大的一个问题就是内存泄露难以解决,尽管Java的JVM有一套自己的垃圾回收机制来回收内存,在许多情况下并不需要java程序开发人员操太多的心,但也是存在泄露问题的,只是比C++小一点。比如说,程序中存在被引用但无用的对象:程序引用了该对象,但后...原创 2013-05-16 16:00:46 · 110 阅读 · 0 评论 -
深入Java虚拟机之虚拟机体系结构
工作以来,代码越写越多,程序也越来越臃肿,效率越来越低,对于我这样一个追求完美的程序员来说,这是绝对不被允许的,于是除了不断优化程序结构外,内存优化和性能调优就成了我惯用的“伎俩”。 要对Java程序进行内存优化和性能调优,不了解虚拟机的内部原理(或者叫规范更严谨一点)是肯定不行的,这里推荐一本好书《深入Java虚拟机(第二版)》(Bill Venners著,曹晓刚 蒋靖 译,实际上本文...原创 2013-05-16 16:00:15 · 98 阅读 · 0 评论 -
JAVA虚拟机内存分配与回收机制
https://www.ibm.com/developerworks/cn/java/j-codetoheap/http://javawebsoa.iteye.com/blog/1558776http://zhidao.baidu.com/question/43842299.htmlhttp://yshjava.iteye.com/blog/1327778Java把内存划分成两种:一种是...原创 2013-05-16 15:19:06 · 96 阅读 · 0 评论 -
Java类加载器介绍
类加载器负责把类加载到Java虚拟机(JVM)中。指定类的名称,类加载器就会定位这个类的定义,每一个Java类必须由类加载器加载。当启动JVM的时候,可以使用三个类加载器:引导(bootstrap)类加载器、扩展(extensions)类加载器、应用程序(application)类加载器。1.引导类加载器仅仅负责加载核心的Java库,比如位于<JAVA_HOME>/jre...原创 2013-04-16 11:19:36 · 108 阅读 · 0 评论 -
JVM加载class文件的原理
url:http://hxraid.iteye.com/blog/747625 http://samuschen.iteye.com/blog/11195391.Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中2.java中的类大致分为三种: 1.系统类 2.扩...原创 2013-03-20 09:50:03 · 107 阅读 · 0 评论 -
jvm调优
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3550m...原创 2012-03-18 23:22:38 · 108 阅读 · 0 评论 -
用户自定义的类加载器
1、用户自定义的类加载器:要创建用户自己的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定类的名字,返回对应的Class对象的引用。findClassprotected Class findClass(String name) thro...原创 2012-03-18 16:28:14 · 391 阅读 · 0 评论 -
JVM虚拟机如何来初始化构造方法的
面先说一下环境,比如现在有两个类,A和B,两个类都是单例类,这个时候如果A有个B的实例变量,B有个A的实例变量,会发生什么情况呢?开始我以为会出现栈溢出。但是让我迷惑的是,居然没问题。只是其中一个类的 实例变量会是NULL。下面看代码。 Java代码 public class A { private static A a = new A(); ...原创 2012-03-18 16:24:58 · 211 阅读 · 0 评论 -
Java类加载机制深度分析
Java类加载机制类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合程序执行。研究类加载机制的第二个目的是让程序能动态的控制类加载,比如热部署等,提高程序的灵活性和适应性。 在java.lang包里有个ClassLoader类,ClassLoader 的基本目标是对类的请求提供服务,按需动态装载类和资源,只有当一个类要使用(使用ne...原创 2013-03-05 23:00:52 · 190 阅读 · 0 评论 -
Java虚拟机 原理
Java技术与Java虚拟机 本文转自:http://www.blogjava.net/Jack2007/archive/2008/05/23/202485.html 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:...原创 2012-02-20 14:05:40 · 106 阅读 · 0 评论 -
一次Java垃圾收集调优实战(转江南白衣)
1 资料JDK5.0垃圾收集优化之--Don't Pause(花钱的年华) 编写对GC友好,又不泄漏的代码(花钱的年华) JVM调优总结 JDK 6所有选项及默认值 2 GC日志打印 GC调优是个很实验很伽利略的活儿,GC日志是先决的数据参考和最终验证:Java代码 -XX:+PrintGCDe...原创 2012-10-22 21:19:00 · 109 阅读 · 0 评论 -
深入java虚拟机(圣思园)
1.Java虚拟机与程序的生命周期•在如下几种情况下,Java虚拟机将结束生命周期–执行了System.exit()方法–程序正常执行结束–程序在执行过程中遇到了异常或错误而异常终止–由于操作系统出现错误而导致Java虚拟机进程终止 2.类的加载,连接,初始化加载:查找并加载类的二进制数据•连接–验证:确保被加载的类的正确性–准备:为类的静态变量分...原创 2012-06-06 12:01:50 · 724 阅读 · 1 评论 -
jvm的内存分配及运行机制(转)
http://www.cnblogs.com/200911/p/3922704.html VM运行时数据区域:根据《Java虚拟机规范(第二版)》的规定,JVM包括下列几个运行时区域:我们思考几个问题:1.jVM是怎么运行的?2.JVM运行时内存是怎么分配的?3.我们写的java代码(类,对象,方法,常量,变量等等)最终存放在哪个区?VM运行时数据区域:...原创 2014-12-18 15:13:23 · 146 阅读 · 0 评论