JVM浅谈
一只想飞的猪*
JAVA程序员
展开
-
虚拟机栈
1.虚拟机栈的概述 1.1虚拟机栈出现的背景 由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 根据栈设计的优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 1.2.内存中的栈和堆 栈是运行时的单位,而堆是存储的单位 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数据存储的问题,即数据怎么放、放在哪儿。 Java虚拟机栈是什么? .java虚拟机栈(Java Virtual Machine原创 2020-09-25 00:02:09 · 237 阅读 · 0 评论 -
线程概述和程序计数器
1.线程概述 线程是一个程序里的运行单元。JVM允许一个应用有多个线程并行的执行。 在Hotspot JVM里,每个线程都与操作系统的本地线程直接映射。当一个Java线程执行终止后,本地线程也会回收。 操作系统负责所有线程的安排调度到任何一个可用的CPU上。一旦本地线程初始化成功,它就会调用Java线程中的run()方法。 如果你使用jconsole或者是任何一个调试工具,都能看到后台有许多线程在运行。这些后台线程不包括调用public static void main(String[])的main线程以原创 2020-09-22 23:45:08 · 556 阅读 · 0 评论 -
类加载子系统
02.类加载子系统 1.类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头都有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则由ExecutionEngine决定。 加载的类信息存放于一块称为方法去的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包含字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射) 在.class文件 ——》JVM ——》方法区中的元数据模板,此原创 2020-09-19 02:40:01 · 109 阅读 · 0 评论 -
JVM与JAVA 体系结构
01.JVM与JAVA 体系结构 1.Java及JVM简介 Java是一种跨平台的语言,Java虚拟机是跨语言的平台,JVM不关心运行在其内部的程序到底是使用何种语言编写的,它只关心“字节码”文件。只要其他语言的编译结果满足并包含Java虚拟机的内部指令集,符号表以及其他辅助信息,它就是一个有效的字节码文件,就能够被虚拟机识别并装载运行。 2.虚拟机和Java虚拟机 所谓虚拟机,就是一台虚拟的计算机,它是一款软件,用来执行一系列虚拟机计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。例如VMwa原创 2020-09-17 23:59:54 · 143 阅读 · 0 评论