JVM成神之路-类加载机制-双亲委派,破坏双亲委派

JVM 发表评论
概述 概念 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接时候用的Java类型。 类的生命周期 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载。其中验证、准备、解析统称为连接 上图中,加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须严…

深入探讨java类加载机制

Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 . class 文件按照需求和一定的规则加载进内存,并组织成为一个完整的 Java 应用程序。 Java 语言把每个单独的类 Class 和接口 Implements 编译成单独的一个 . class 文件,这些文件对于 Java 运行环境来说就是一个个可以动态加载的单元。正是因为 Java 的这种特性,我们可以在不重新编译其它代码的情况…

JDK、JRE、JVM三者间的关系

今天上海普元面试题: JDK、JRE、JVM三者间的关系 对于我这应届生,突然懵逼。以为很简单~ 回来查了查 和自己解答的还是有点出入,遂找资料记录一下,Java开发任重而道远,基础打牢~ JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Ja…

JVM启动参数大全

转自:http://blog.csdn.net/wzyaa/archive/2009/04/03/4034876.aspx   JVM启动参数大全 zz 收藏 jdk1.4.2 JVM官方地址:http://java.sun.com/j2se/1.4.2/docs/guide/vm/index.html 标准和非标注参数(for windows):http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html 非stable参数:http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp 中文地址: http://blog.csdn.net/s…

J2SE 四大技术体系

JVM 发表评论
转载之:http://hxraid.iteye.com/blog/663203 讲到Java,很容易就想到程序设计语言。实际上,Java技术包含的内容远不止一种编程语言怎么简单。我们通常说的J2SE(java 2 标准版)就是在全局上对Java技术的一种称呼。 1、J2SE技术体系结构 下图包含了J2SE体系结构的全部重大相关技术,也描述了java程序运行不可缺少的过程。   要精通J2SE,必须对J2SE的四大重要技术有深入的了解。 (1) Java 程序设计语…

JVM性能调优

说在前面:1.为什么要jvm调优前面有篇文件已经说明了java的内存模型:java应用------>依赖jvm---->依赖OS(操作系统)所以应用直接打交道的是jvm,要想应用跑的稳健(系统异常少,比如内存溢出之类的),快速(响应速度快,因为gc的时候应用的所有线程都停止工作,影响速度)上面的这两个目标都需要调节jvm来解决:2.jvm调优的重点:a. 垃圾回收+  b. 内存管理3.要对哪些地方调优:一张图让大家明…

jvm的新生代和老年代简介

新生代分为三个区域,一个Eden区和两个Survivor区,它们之间的比例为(8:1:1),这个比例也是可以修改的。通常情况下,对象主要分配在新生代的Eden区上,少数情况下也可能会直接分配在老年代中。Java虚拟机每次使用新生代中的Eden和其中一块Survivor(From),在经过一次Minor GC后,将Eden和Survivor中还存活的对象一次性地复制到另一块Survivor空间上(这里使用的复制算法进行GC),最后清理掉Ede…

Java ClassLoader原理分析

一、JDK默认提供的三个ClassLoader JDK 默认提供了如下几种ClassLoader 1. Bootstrp loader Bootstrp加载器是用C++语言写的,它是在Java虚拟机启动后初始化的,它主要负责加载%JAVA_HOME%/jre/lib,-Xbootclasspath参数指定的路径以及%JAVA_HOME%/jre/classes中的类。 2. ExtClassLoader   Bootstrp loader加载ExtClassLoader,并且将ExtClassLoader的父加载器设置为Bootstrp loader.ExtClassLoader是…

Java的类加载机制

JVM 发表评论
Java类加载机制 1.概述 ​ Class文件由类加载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 ​ 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机…

触摸java常量池

JVM 发表评论
http://www.cnblogs.com/iyangyuan/p/4631696.html 理论            小菜先拙劣的表达一下jvm虚拟内存分布:        程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。      本地方法栈是jvm调用操作系统方法所使用的栈。      虚拟机栈是jvm执行java代码所使用的栈。      方法区存放了一些常量、静态变量、类信息等,可以理解成class文件在内存中的存放位置。      虚拟…

JVM学习–垃圾收集算法

JVM 发表评论
JVM学习–总索引 文章目录JVM学习--垃圾收集算法标记-清除算法复制算法标记-整理算法分代收集算法。 JVM学习–垃圾收集算法 本文主要介绍几种常用算法的思想,包括标记-清除算法,标记-整理算法,复制算法,分代收集算法。 标记-清除算法 步骤: 1.如上面的示意图所示,在垃圾回收前,先将内存中标记哪些对象可以被回收。 2.回收那些被标记的对象 存在的问题: 1.标记和回收过程的效率都不高。 2.由于…

JVM内核—JVM调优

JVM 发表评论
目录: 1.常用JVM调优参数 2. GC日志 3.常用JVM调优工具         3.1 JConsole         3.2 JVisualVM         3.3 JStat         3.4 JMap 4.通过Thread Dump诊断JVM性能 1.常用JVM调优参数 -XX:+PrintGCDetails  打印详细垃圾回收信息-Xms  为Heap区域的初始值-Xmx  为Heap区域的最大值,线上环境需要与-Xmx设置为一致,以免JVM堆内存使用达到Xmx值,并且进行垃圾回收后,会收缩堆大小至Xms值-Xss(…

JVM Optimize (jvm 性能调优)

JVM , 发表评论
原文连接:http://blog.sina.com.cn/s/blog_7b6fc4c901016uzz.html 1.堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。 典型设置: 1.java -Xmx3550m -Xms355…

一个内存报警问题总结

JVM , 发表评论
查看当时的FULL GC从图上面看已经很频繁 打印dump文件 执行命令:jmap -dump:format=b,file=/export/Logs/anycall.jd.local/HeapDump.bin  然后通过Eclipse Memory Analyzer查看,如下图,2.9G 占据了大部分,我们最主要的是看到底哪些类撑爆了内存, 继续往下走,查看dominator_tree,如下图:可以看到蓝色阴影部分,是在errror日志打印的时候输出的内容。 这部分问什么会造成内存回收的问题呢,看…

【JVM】JVM调优

JVM 发表评论
待整理 http://www.importnew.com/?s=JVM调优总结 首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会占…
下一页 »