`
ljmdbc7a
  • 浏览: 52649 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

JVM内存那些事儿

    博客分类:
  • java
阅读更多

一直对JVM的内存很感兴趣,上网搜了很多东西,都是似是而非,索性买了一本书,

学习了一段时间,跟大家分享。

 

Java虚拟机所管理的内存将会包括以下几个运行时数据区(看图):

上图就是Java虚拟机规范对JVM的内存规划,当然这只是规范,在实际虚拟机产品中可能有一些小差别,例如sun公司的Hot Spot虚拟机就把上图中的JVM栈和本地方法栈合二为一了(统称栈)。

 

大家都知道,一个Java进程就是一个JVM实例,其中方法区和堆是一个JVM实例中所有线程共享的,即一个Java进程就一个方法区和一个堆内存,而进程中每一个线程都会有自己的栈和程序计数器。

 

方法区:所有线程共享,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码。因为存储加载的class文件,所以常量池(class文件常量池和运行时常量池)也在这里,即常量池是方法区的一部分。

 

:所有线程共享的一块内存区,存储new出来的对象,几乎所有的对象实例都在这里分配内存。

 

:栈描述的是Java方法执行的内存模型,每个方法被执行的时候都会创建一个栈,局部变量表,操作栈,动态链接,方法出口等都存储在栈中。局部变量表存放各种基本类型数据、对象引用和returnAddress类型,其所需内存空间在编译期间完成分配。注意栈中存储对象的引用,实际对象存储在堆中。

 

程序计数器:较小的一块内存空间,时刻执行当前执行的字节码,相当于一个指针(IP)。为了线程切换后能恢复到正确的位置,每条线程都需要一个独立的程序计数器。

  • 大小: 50.1 KB
4
1
分享到:
评论

相关推荐

    java那些事儿chm

    9. **JVM原理**:Java虚拟机的工作原理,包括类加载机制、内存模型、JVM调优等。 10. **Spring框架**:如果涉及企业应用,可能会讲解Spring框架的基础和进阶用法,如依赖注入、AOP、Spring Boot等。 11. **数据库...

    java程序员的那些事儿

    "java程序员的那些事儿"这个主题涵盖了许多方面,包括学习路径、技术栈、开发实践、职业发展等。让我们深入探讨一下Java程序员在日常工作中的关键知识点。 首先,学习Java编程语言是基础。Java以其“一次编写,到处...

    从JVM内存模型谈线程安全

    等赶明写一篇文章就叫做”我是个假程序员”来谈谈这些有趣的事儿.话不多说,今天要谈的主题是相对较深,较广,但我努力的让他看起来清晰明了.对于开发者来说,存储器的层次结构应该是非常熟悉的,大体如下:其中寄存器,L1,...

    Java编程那些事儿_java_

    本文将围绕“Java编程那些事儿”,探讨JVM的工作原理,诊断工具的使用以及性能优化策略。 1. JVM原理: JVM是一种虚拟机,它为Java程序提供了跨平台的执行环境。它负责解析.class文件,执行字节码,并管理内存区域...

    Java程序员上班那点事儿

    7. **JVM内存管理**:理解堆、栈、方法区等内存区域,以及垃圾回收机制,有助于优化代码性能。 8. **Spring框架**:作为Java企业级应用的主流框架,Spring的依赖注入、AOP(面向切面编程)和Spring Boot的使用可能...

    java程序员上班那点事儿

    在性能优化方面,Java程序员需要关注内存管理,理解垃圾回收机制,避免内存泄漏。此外,他们还需要对JVM(Java虚拟机)有深入了解,包括类加载机制、调优参数和性能监控工具,如VisualVM。 协同工作是程序员工作的...

    【Java面试+Java学习指南】一部分大部分Java招聘所需要掌握的核心知识

    JVM内存模型 性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收器、垃圾回收算法 ARM与多线程 多线程基础知识 常见关键字 多线程锁机制 线程池知识点 常见的JUC工具类 多线程经典面试题 常用工具集 ...

    Java程序员上班那点事儿.rar

    例如,如何优化Java代码性能,使用JVM调优工具(如VisualVM或JProfiler)进行内存分析,或者理解垃圾收集机制以减少应用的内存消耗。还可能涉及如何有效地进行单元测试和集成测试,使用JUnit、Mockito等工具,确保...

    java面试书籍

    其次,"面试指南"则可能是一部专门针对Java面试设计的资料,它可能会涵盖Java语言的基础语法、面向对象设计原则、集合框架、JVM内存模型、并发编程、Spring框架、数据库操作等核心知识点。这样的指南通常会提供详细...

    java学习资料.zip

    4. **Java编程思想**:`Java编程那些事儿.pdf`和`Java编程思想第4版.pdf`涵盖了Java编程的基本原则和设计模式,对于提升代码质量、可读性和可维护性具有指导意义。理解并应用这些思想,可以使你的Java编程水平更上一...

    java面试题集合java面试题集合java面试题集合

    Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识领域,包括基础语法、面向对象、集合框架、多线程、JVM内存模型、异常处理、IO流、网络编程、设计模式、数据库操作、Spring框架、微服务等。下面将根据...

    java笔试面试题目

    了解JVM的工作原理,如内存模型(堆、栈、方法区、本地方法栈、程序计数器)、垃圾回收机制(GC算法、分代收集、Stop-The-World)、性能调优(内存设置、类加载优化、JMX监控)等,能提升Java程序的运行效率。...

    java程序员上班那点事

    例如,它可能会强调良好的注释习惯,如何有效地利用Java 8的新特性,如Lambda表达式和Stream API,或者讲解如何使用JVM调优工具如JVisualVM来诊断和优化应用性能。 此外,文档可能还会涉及项目管理方面,如敏捷开发...

Global site tag (gtag.js) - Google Analytics