深入理解JVM
文章平均质量分 87
水瓶座程序猿纳兰
阻碍自己前进的,主要还是懒.....
展开
-
深入理解JVM总结-类文件结构
虚拟机可以运行在不同的平台上,这些虚拟机都可以载入和执行同一种平台无关的字节码(ByteCode)——各种不同平台虚拟机与所有平台都统一使用的程序存储格式,实现“一次编写,处处运行”。虚拟机具有语言无关性。不和任何语言绑定,只与“class文件”这种特定的二进制文件格式所关联,class文件中包含了Java虚拟机指令集和符号以及若干其他辅助信息。程序源文件-->对应的编译器-->.clas原创 2017-08-20 19:59:32 · 281 阅读 · 0 评论 -
深入理解JVM总结——虚拟机类加载机制
虚拟机类加载机制虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以直接被虚拟机使用的Java类型,这就是虚拟机的类加载机制。什么时候加载完成的Java中,类的加载、连接和初始化过程都是在程序运行期间完成的。虽然会令类加载时稍微增加一些性能开销,但会为Java应用程序提供高度的灵活性。Java可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实原创 2017-08-21 14:29:06 · 267 阅读 · 0 评论 -
深入理解JVM总结-JDK各版本、JVC内存分配及溢出异常
第一部分 走近JAVA第一章 走近Java1.JDK1.5版本改动非常大,加入了自动装箱、泛型、动态注解、枚举、可变长参数以及遍历循环等。 JDK1.6提供动态语言支持,提供API编译,且JVM中改进了锁与同步、垃圾收集以及类加载等的算法。 JDK1.7提供新的G1收集器、加强对非Java语言的调用支持(目前未完全定型)、升级类加载架构等。 JDK1.8增加Lamb原创 2017-08-17 14:29:57 · 1527 阅读 · 0 评论 -
深入理解JVM总结-垃圾收集器与内存分配策略
在面试时,总是会问到JVM的GC机制等问题,这一块算是十分重要的了。GC(garbage collection),垃圾收集器。对于GC,我们需要考虑的是以下三点:①哪些内存需要回收;②什么时候回收;③如何回收。为何要考虑垃圾回收机制呢?当需要排查各种内存溢出、内存泄漏时,当垃圾收集成为系统达到高并发量的瓶颈时,就需要对这些“自动化”技术实施必要的监控和调节。哪些内存需要回收原创 2017-08-20 10:21:41 · 1284 阅读 · 0 评论 -
深入理解JVM总结——虚拟机字节码执行引擎
执行引擎是Java虚拟机最核心的组成部分之一。物理机和虚拟机都有执行代码的能力。区别在于物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行指定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。 虚拟机执行引擎在执行Java代码的时候分为解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行),也原创 2017-08-21 23:04:28 · 440 阅读 · 0 评论 -
深入理解JVM——线程安全与锁优化
线程安全当多个线程访问一个对象时,如果不考虑这些线程在执行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象是线程安全的。Java语言中的线程安全线程安全是基于多线程共享数据来说的,没有与其他线程的共享数据,从线程安全来看,程序是串行执行还是多线程执行完全没有区别。 按照线程安全的“安全程度”由强到弱将各种操作原创 2017-08-23 20:04:38 · 505 阅读 · 0 评论 -
深入理解JVM——轻量级锁和偏向锁
轻量级锁JDK1.6出现的。并不能代替重量级锁,本意是在没有多线程竞争的前提下,减少传统的重量级锁使用操作系统互斥量产生的性能消耗。HotSpot虚拟机对象头对象自身的运行时数据如:哈希吗(HashCode)、GC分代年龄(Generational GC Age)等,这部分数据的长度在32位和64位的虚拟机中分别为32bit和64bit,简称“Mark Word”,如果对象是数组类型,则虚拟机用3个原创 2017-08-23 23:19:20 · 1700 阅读 · 0 评论 -
深入理解JVM-Java线程-实现方式,线程调度,状态
Java线程并发并不一定依赖多线程,但Java里谈论并发大多数都与线程脱不开关系。 线程是比进程更轻量级的调度执行单位,线程的引入可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址,文件IO等),又可以独立调度(线程是CPU调度的基本单位)。 Thread类的所有关键方法都声明了native的,意味着这个方法没有使用或无法使用平台无关的手段来实现,也有可能是为了执行效率原创 2017-08-31 16:07:34 · 13831 阅读 · 0 评论 -
深入理解JVM—Java内存模型
计算机的运行速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网通通信或者数据的访问上。造成很大的浪费,最好的办法就是让计算机同时处理几项任务。 并发另一个场景:服务端同时对多个客户端提供服务。 衡量一个服务性能的高低好坏,每秒事务处理数Transactions Per Scend,TPS,是最重要的指标之一,代表一秒内服务端平均响应的请求总数,TPS的值和并发能力联系非常原创 2017-08-23 10:07:45 · 672 阅读 · 0 评论