![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
电子狗到程序猿
这个作者很懒,什么都没留下…
展开
-
深入理解JVM虚拟机11:Java内存异常原理与实践
深入理解JVM虚拟机11:Java内存异常原理与实践 转自 How 2 Play Life Java内存异常原理与实践 实战内存溢出异常 大家好,相信大部分Javaer在code时经常会遇到本地代码运行正常,但在生产环境偶尔会莫名其妙的报一些关于内存的异常,StackOverFlowError,OutOfMemoryError异常是最常见的。今天就基于上篇文章JVM系列之Java内存结构详解讲解的...转载 2019-01-10 16:31:54 · 153 阅读 · 0 评论 -
深入理解JVM虚拟机9:JVM监控工具与诊断实践
深入理解JVM虚拟机9:JVM监控工具与诊断实践 转载JVM监控工具与诊断实践 在常见的线上问题时候,我们多数会遇到以下问题: 内存泄露 某个进程突然cpu飙升 线程死锁 响应变慢…等等其他问题。 如果遇到了以上这种问题,在线下可以有各种本地工具支持查看,但到线上了,就没有这么多的本地调试工具支持,我们该如何基于监控工具来进行定位问题? 我们一般会基于数据收集来定位,而数据的收集离不开监控工具...转载 2019-01-09 22:04:33 · 120 阅读 · 0 评论 -
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
深入了解JVM虚拟机8:Java的编译期优化与运行期优化 java编译期优化 java语言的编译期其实是一段不确定的操作过程,因为它可以分为三类编译过程: 1.前端编译:把.java文件转变为.class文件 2.后端编译:把字节码转变为机器码 3.静态提前编译:直接把*.java文件编译成本地机器代码 从JDK1.3开始,虚拟机设计团队就把对性能的优化集中到了后端的即时编译中,这样可以让那些不是...转载 2019-01-09 21:25:53 · 144 阅读 · 0 评论 -
深入理解JVM虚拟机7:Tomcat类加载器实现
深入理解JVM虚拟机7:Tomcat类加载器实现 打破双亲委派模型 上文提到过双亲委派模型并不是一个强制性的约束模型,而是 Java设计者推荐给开发者的类加载器实现方式。在Java 的世界中大部分的类加载器都遵循这个模型,但也有例外。 双亲委派模型的一次“被破坏”是由这个模型自身的缺陷所导致的,双亲委派很好地解决了各个类加载器的基础类的统一问题(越基础的类由越上层的加载器进行加载) ,基础...转载 2019-01-09 17:50:01 · 165 阅读 · 0 评论 -
深入理解JVM虚拟机6:深入理解JVM类加载机制
深入理解JVM虚拟机6:深入理解JVM类加载机制 简述:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 下面我们具体来看类加载的过程: 类从被加载到内存中开始,到卸载出内存,经历了加载、连接、初始化、使用四个阶段,其中连接又包含了验证、准备、解析三个步骤。这些步骤总体上是按照图中顺序进行的...转载 2019-01-09 13:22:28 · 167 阅读 · 0 评论 -
深入理解JVM虚拟机5:虚拟机字节码执行引擎
深入理解JVM虚拟机5:虚拟机字节码执行引擎 虚拟机字节码执行引擎 转自https://juejin.im/post/5abc97ff518825556a727e66 所谓的「虚拟机字节码执行引擎」其实就是 JVM 根据 Class 文件中给出的字节码指令,基于栈解释器的一种执行机制。通俗点来说,也就是 JVM 解析字节码指令,输出运行结果的一个过程。接下来我们详细看看这部分内容。 方法调用的本质...转载 2019-01-08 21:42:03 · 177 阅读 · 0 评论 -
深入理解JVM虚拟机4:Java class介绍与解析实践
深入理解JVM虚拟机4:Java class介绍与解析实践 转自https://juejin.im/post/589834a20ce4630056097a56 前言 身为一个java程序员,怎么能不了解JVM呢,倘若想学习JVM,那就又必须要了解Class文件,Class之于虚拟机,就如鱼之于水,虚拟机因为Class而有了生命。《深入理解java虚拟机》中花了一整个章节来讲解Class文件,可是看...转载 2019-01-08 15:20:26 · 112 阅读 · 0 评论 -
深入理解JVM虚拟机3:垃圾回收器详解
深入理解JVM虚拟机3:垃圾回收器详解 转自How 2 Play Life 垃圾回收器详解 关于 JVM 内存管理或者说垃圾收集,大家可能看过很多的文章了,笔者准备给大家总结下。这算是系列的第一篇,接下来一段时间会持续更新。 本文主要是翻译《Memory Management in the Java HotSpot Virtual Machine》白皮书的前四章内容,这是 2006 的老文章了,当...转载 2019-01-08 14:33:54 · 153 阅读 · 0 评论 -
深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法
深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法 JVM GC基本原理与GC算法 Java的内存分配与回收全部由JVM垃圾回收进程自动完成。与C语言不同,Java开发者不需要自己编写代码实现垃圾回收。这是Java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写Java程序。 下面四篇教程是了解Java 垃圾回收(GC)的基础: 垃圾回收简介 圾回收是如何工作的? 垃圾回收的类别 这篇教...转载 2019-01-07 16:25:31 · 174 阅读 · 0 评论 -
深入理解JVM虚拟机1:JVM内存的结构与永久代的消失
深入理解JVM虚拟机1:JVM内存的结构与永久代的消失 本文转自:How 2 Play Life JVM内存的结构与永久代的消失 所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以...转载 2019-01-06 23:37:02 · 114 阅读 · 0 评论 -
Java基础15:深入理解Java枚举类
Java基础15:深入理解Java枚举类 (本文参考了https://blog.csdn.net/a724888/article/details/80173457 ) 枚举(enum)类型是Java 5新增的特性,存放在 java.lang 包中,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。 引入枚举类 在程序设计中,有时会用到由若干个有限数据元素组...原创 2019-01-10 22:23:26 · 256 阅读 · 0 评论 -
Java基础14:离开IDE,使用java和javac构建项目
Java基础14:离开IDE,使用java和javac构建项目 具体的细节参见 How 2 Play Life 前言:本文教你怎么用javac和java命令,讲解了classpath的原理,以及如何利用脚本(shell或bat)进行项目部署,离开ide,还原最本质的Java编译运行过程,并用简单的实例展示这些用法。 IDE是把双刃剑,它可以什么都帮你做了,你只要敲几行代码,点几下鼠标,程序就跑...原创 2019-01-10 20:01:16 · 213 阅读 · 0 评论 -
深入理解JVM虚拟机10:JVM常用参数以及调优实践
本文转自[JVM常用参数以及调优实践](https://blog.csdn.net/a724888/article/details/78367780) JVM常用参数选项 jvm 可配置的参数选项可以参考 Oracle 官方网站给出的相关信息:http://www.oracle.com/techne...转载 2019-01-09 22:12:46 · 382 阅读 · 0 评论