类加载器是一个用来加载类文件的一个类.java源代码通过javac编译器编译成类文件.然后jvm来执行类文件中的字节码来执行程序. 类加载文件负责加载文件系统、网络或其他来源的类文件. 有以下三种默认使用的类加载器: 1…
标签:java虚拟机
关于第二版《深入理解java虚拟机》中“栈溢出”案例的不同看法
原文: 使用-Xss参数减少栈内存容量。结果:抛出StackOverflowError异常,异常出现时输出的堆栈深度缩小。 定义了大量的本地变量,增大此方法帧中本地变量表的长度。结果:抛出StackOverflowErr…
深入理解JVM虚拟机11:Java内存异常原理与实践
JVM系列之实战内存溢出异常 实战内存溢出异常 大家好,相信大部分Javaer在code时经常会遇到本地代码运行正常,但在生产环境偶尔会莫名其妙的报一些关于内存的异常,StackOverFlowError,OutOfMe…
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
java编译期优化 java语言的编译期其实是一段不确定的操作过程,因为它可以分为三类编译过程:1.前端编译:把.java文件转变为.class文件2.后端编译:把字节码转变为机器码3.静态提前编译:直接把*.java文…
深入理解JVM虚拟机4:Java class介绍与解析实践
用java解析class文件 转自https://juejin.im/post/589834a20ce4630056097a56 前言 身为一个java程序员,怎么能不了解JVM呢,倘若想学习JVM,那就又必须要了解Cl…
深入理解Java虚拟机学习笔记:第三章,垃圾收集器
第三章,垃圾收集器 概述 一、概述 1.垃圾收集器(GC)需要思考的三件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 2.Java内存运行数据区域中,程序计数器、虚拟机栈、本地方法栈、三个区域跟线程的声明周期相…
常用垃圾收集算法——《深入理解Java虚拟机》笔记
概述 垃圾收集器(Garbage Collection, GC)的历史要比Java久远,且并非Java独有,GC主要完成以下三件事情: 哪些内存需要回收 什么时候回收 如何回收 对于Java内存运行时区域的各个部分,程序…
Java内存分配策略——《深入理解Java虚拟机》笔记
概述 Java自动内存管理包含两方面的含义:给对象分配内存以及回收分配给对象的内存。 Java对象的内存分配主要是指在堆上分配(也有经过JIT编译后被拆散为标量类型并间接地在栈上分配的情况),对象主要分配在新生代的Ede…
深入java虚拟机第二版阅读笔记(不断整理中)
问题使人深思 1 class文件是如何被调入内存执行的? 加载原理? 深入探讨 Java 类加载器:http://www.ibm.com/developerworks/cn/ja…
JVM调优总结(参考深入理解Java虚拟机书籍)
1.堆大小设置: 最大的堆大小限制:操作系统的数据,虚拟机内存限制,物理内存限制 典型设置:-Xmx3550m -Xms3550m -Xmn2g -Xss128K -Xmx3550m :设置JVM最大可用的内存3550M…
深入理解Java虚拟机 ch6 类文件结构 读书笔记
part3 虚拟机执行子系统 本部分讲虚拟机的执行过程所涉及到的一些问题。这部分详细地说明了Java是如何实现平台无关的:JVM和字节码存储格式。通过设计一个统一的Class文件标准去存储字节码(JVM指令集,符号表…
深入理解Java虚拟机--读书笔记--类文件结构
6.4 字节码指令简介 Java虚拟机指令由一个操作码和零至多个操作数构成 操作码是长一个字节、代表某种特定操作含义的数字 操作数是此操作需要的参数 Java虚拟机采用面向操作数栈 的架构,故大多数的指令都不包含操作数,…