
java虚拟机
三名狂客
success without applause,diligence without reward!Becoming、Cognifying、Flowing、Screening、Accessing、Sharing、Filtering、Remixing、Interacting、Tracking、Questioning、Beginning.
展开
-
Java虚拟机体系结构
编译及运行环境(Complie and Runtime Enviroment)1、Java源文件经过编译器,生成*.class(字节码)文件。2、 *.class(字节码)文件由ClassLoader载入虚拟机,由执行引擎执行。Java虚拟机基本结构1、装载。所有由用户自己编写生成的*.class文件以及这些*.class文件引用的JDK A转载 2017-05-11 16:38:51 · 473 阅读 · 0 评论 -
JVM垃圾收集算法
目录判定对象是否存活 引用计数法可达性分析法引用的种类 强引用(Strong Reference)软引用(Soft Reference)弱引用(Weak Reference)虚引用(Phantom Reference)回收堆中无效对象 判定 finalize() 是否有必要执行对象重生或死亡回收方法区内存 判定废弃常量判定无用的类垃圾收集算法 标记-清除算法复...翻译 2018-07-10 14:35:34 · 251 阅读 · 0 评论 -
HotSpot对象揭秘
目录对象的内存模型 对象头实例数据对齐补充对象的创建过程 类加载检查为新生对象分配内存初始化对象的访问方式 句柄访问方式直接指针访问方式HotSpot 虚拟机对象探秘对象的内存模型在 HotSpot 虚拟机中,对象在内存中存储的布局分为3块区域:对象头实例数据对齐补充对象头对象头记录了对象在运行过程中所需要使用的一些数据:...翻译 2018-07-10 14:34:14 · 360 阅读 · 0 评论 -
JVM内存结构
目录程序计数器(PC 寄存器) 程序计数器的作用程序计数器的特点Java 虚拟机栈(Java 栈) Java 虚拟机栈的特点本地方法栈堆 堆的特点方法区 方法区的特点运行时常量池直接内存 直接内存与堆内存比较JVM 内存模型Java 虚拟机的内存空间分为5个部分:程序计数器Java 虚拟机栈本地方法栈堆方法区程序计数器(PC ...翻译 2018-07-10 14:32:16 · 328 阅读 · 0 评论 -
JVM堆的划分
JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。 Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),New 即 年轻代(Young...翻译 2018-06-23 16:09:59 · 1066 阅读 · 0 评论 -
JVM 类加载机制详解
加载 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),也可以由其它文件生成(比如将JSP文件转换成对应的Class类)。验证 这一阶段的主要目的是为了确保...转载 2018-05-09 22:36:45 · 257 阅读 · 0 评论 -
Java 虚拟机全解
转载:链接JDK 是什么?JDK 是用于支持 Java 程序开发的最小环境。Java 程序设计语言Java 虚拟机Java API类库JRE 是什么?JRE 是支持 Java 程序运行的标准环境。Java SE API 子集Java 虚拟机Java历史版本的特性?Java Version SE 5.0引入泛型;增强循环,可以使用迭代方式;自动装箱与自动拆箱;类型安全的枚举;可变参数;静态引入;元数...转载 2018-03-12 09:59:44 · 383 阅读 · 0 评论 -
JAVA高级面试总结
Sun HotSpot VM,是JDK和Open JDK中自带的虚拟机,也是目前使用范围最广的Java虚拟机。JVM内存分布程序计数器:是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。程序中的分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。由于多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,故该区域为线程私有的内存。虚拟机转载 2018-01-14 19:07:24 · 2519 阅读 · 1 评论 -
程序员应该具备的技能
每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。今天小编给大家分享的是一篇来自阿里Java工程师对3年工作经验程序员的职业建议,希望对你有启发。 程序员的三个阶段 第一阶段-——三年 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合转载 2017-12-26 21:26:47 · 439 阅读 · 0 评论 -
jvm数据区
1. 程序计数器 线程私有 当前线程所执行的字节码的行号指示器2. 虚拟机栈 线程私有 存:Java方法(局部变量表(基本数据类型)、操作数栈、动态链栈、方法出口) StackOverflowError 栈深度大于虚拟机所允许的深度 OutOfMemoryError 无法满足内存分配3. 本地方法栈转载 2017-09-21 00:31:51 · 440 阅读 · 0 评论 -
java历史变迁
一、java变迁历史版本描述1991年1月Sun公司成立了Green项目小组,专攻智能家电的嵌入式控制系统1991年2月放弃C++,开发新语言,命名为“Oak”1991年6月JamesGosling开发了Oak的解释器1992年1月Green完成了Green操作系翻译 2017-09-15 12:05:11 · 831 阅读 · 0 评论 -
java运行流程
运行流程我们都知道java一直宣传的口号是:一次编译,到处运行。java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操作系统上依靠不同的java虚拟机进行解释,最后再转换为不同平台的机器码,最终得到执行。这样我们是不是可以推演,如果要在mac系统上运行,是不是只需要安装mac java虚拟机就行了。那么了解了这个基本原理后,转载 2017-08-20 10:00:56 · 2637 阅读 · 0 评论 -
java内存区域与内存溢出异常
一、对象的内存布局: 1. 对象头(Header):包括两部分 (1)用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等 (2)类型指针,即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。 2.实例数据(Instance Data):对原创 2017-06-28 11:03:19 · 402 阅读 · 0 评论 -
初探java虚拟机
虚拟机,就是一台虚拟的计算机,它是一款软件,用来执行一系列虚拟计算机指令。虚拟机大体可以分为如下: (1)系统虚拟机: Visual Box ,VMware等 (2)程序虚拟机: java虚拟机等 在java虚拟机中执行的指令为java字节码指令。现在被大规模部署的是Hotspot虚拟机。在整个java应用中都要遵循 (1)java 语言规范: java...原创 2017-05-11 15:11:18 · 610 阅读 · 0 评论 -
Java内存管理:深入Java内存区域
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。 对于Java程序员来说,在虚拟机的自动内存管理机制转载 2017-06-04 22:56:57 · 361 阅读 · 0 评论 -
java性能分析
性能分析的两种方法: (1)自顶向下:着眼于软件栈顶层的应用,从上往下寻找优化机会和问题。 (2)自底向上:从最底层CPU统计数据(cpu高速缓存命中率、cpu指令效率)开始,逐步上升到应用本身。 软件开发过程:翻译 2017-05-14 17:10:34 · 475 阅读 · 0 评论 -
HotSpot垃圾收集器
目录新生代垃圾收集器 Serial 垃圾收集器ParNew 垃圾收集器Parallel Scavenge 垃圾收集器老年代垃圾收集器 Serial Old 垃圾收集器Parallel Old 垃圾收集器CMS 垃圾收集器G1 通用垃圾收集器HotSpot 垃圾收集器HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进...翻译 2018-07-10 14:36:59 · 434 阅读 · 0 评论