读书笔记:
涉及名词:寄存器,栈,堆,静态域,常量池,非RAM存储。
这里只栈,堆,常量池。
2.栈里存放的是基本类型的变量数据和对象的引用。
3.堆存放所有new出来的对象。
4.常量池存放字符串常量和基本类型常量(public static final)
5.栈和常量池中的对象可以共享,堆中的对象不可以共享
6.栈中的数据大小和生命周期可以确定,当没有引用指向数据时,数据就会消失。
7.堆中的对象由垃圾回收器负责回收,因此大小和生命周期不需要确定,具有很大的灵活性。
8.对于字符串:其对象的引用都是存在栈中,如果是编译期已经创建好的(直接用双引号定义的,如:String str = "abc";)就存储在常量池,如果是运行期(如 String str=new String("abc");)才能确定的就存储在堆中。对于equals相等的字符串,在常量池中只有一份,在堆中有多份。
String s1 = "abc";
String s2 = "abc";
String s3 = "abc";
String s4 = new String("abc");
String s5 = new String("abc");
栈中:s1,s2,s3,s4,s5;
堆中:new String("abc"),new String("abc");
常量池中:"abc";
9.对于局部变量和成员变量:局部变量的数据存储在栈中,栈中的局部变量随着方法的消失而消失;成员变量存储在堆中的对象里,由垃圾回收器负债回收。
分享到:
相关推荐
JVM基础知识与调优是每一个Java开发者都需要掌握的重要技能。这个“jvm-training”资料包涵盖了JVM的核心概念、内存管理、垃圾回收机制、性能优化等方面的知识。 1. **JVM架构** - 类加载器:JVM通过类加载器将....
以上只是JVM众多知识中的一部分,实际上,JVM涉及的领域还包括内存模型、线程管理、异常处理、类加载策略等。理解JVM的工作原理对于编写高效、稳定的Java程序至关重要。通过研究这个压缩包中的资源,你可以更深入地...
JVM(Java Virtual Machine)是Java程序运行的基础,它负责解析字节码并管理内存。在JVM面试中,常见的问题涵盖了多个方面,包括内存分配、常量池、垃圾收集、内存区域、运行时栈帧结构以及内存模型等。下面我们将...
一、JVM内存区域划分 1. **程序计数器**:每个线程都有自己的程序计数器,它记录了当前线程正在执行的字节码指令的地址,是线程私有的内存区域。在Java中,如果线程执行的是一个Java方法,那么计数器记录的就是字节...
Java虚拟机(JVM)性能优化是Java开发者...掌握JVM的这些基础知识对于优化Java应用性能、解决内存泄漏和避免类加载异常等问题至关重要,也是求职面试中的常见考点。了解这些概念有助于开发更高效、稳定的Java应用程序。
4. **JVM内存模型**:JVM内存模型包括堆(Heap)、栈(Stack)、方法区(Method Area)、程序计数器(PC Register)、本地方法栈(Native Method Stack)。其中,方法区存储类信息,如类元数据、常量池等。 5. **类...
同时,理解JVM内存结构有助于分析内存泄漏问题,通过监控堆和栈的使用情况,可以找出可能的内存占用过高的原因。 总之,掌握JVM内存管理的基本概念,可以帮助开发者更好地理解和解决Java应用程序在运行时遇到的性能...
JVM 内存分配与垃圾回收详解 Java 虚拟机(JVM)是 Java 语言的 runtime 环境,它提供了一个平台独立的方式来执行 Java 字节码。...了解 JVM 内存分配与垃圾回收是 Java 开发者必须掌握的基础知识之一。
JVM(Java Virtual Machine)是Java程序运行的...以上知识点涵盖了JVM内存管理、垃圾收集、对象生命周期等方面,是Java开发者面试时经常遇到的问题。理解并掌握这些概念对于优化代码性能和解决内存泄漏等问题至关重要。
- **内存结构**:包括堆(新生代、老年代)、栈(方法区、本地方法栈)、PC寄存器和方法区(包含运行时常量池、类型信息等)。 2. **垃圾收集** - **垃圾收集器**:常见的有Serial、Parallel、CMS、G1、ZGC等。G1...
【狂神说JVM探究】是一份集合了多种格式的学习资料,主要涵盖了Java虚拟机(JVM)的基础知识。这份资料出自B站上的【狂神说Java】系列教程,为快速入门JVM提供了详实的笔记。以下是根据这些资源可能包含的一些关键...
- **直接内存**:不受JVM堆管理,适用于频繁访问且申请次数较少的场合,如NIO框架中的使用。 #### 三、垃圾回收机制 - **年轻代**:由于对象存活周期短,主要采用复制算法进行回收。 - **Eden区**与**Survivor区*...
- JDK 1.8之前,字符串常量池位于 PermGen(永久代),而JDK 1.8之后,字符串常量池被移到堆内存中。运行时常量池则存储在方法区(在JDK 8后改为元空间Metaspace),包括类加载后的常量信息。 3. **动态年龄判断**...
Java虚拟机(JVM)是Java程序运行的基础,它负责管理程序的内存、执行字节码、处理异常等。以下是对JVM核心知识点的详细梳理和面试题的总结: 1. **内存结构** - **堆(Heap)**:所有线程共享的内存区域,用于...
Java JVM(Java虚拟机)是Java程序运行...以上只是JVM面试中的一些基础知识点,实际面试可能涉及更多细节,如内存分配策略、垃圾收集算法、性能调优等。理解JVM的工作原理对于解决性能问题和优化Java应用程序至关重要。
Java虚拟机(JVM)是Java程序运行的基础,它提供了执行Java字节码的平台。在"Java内存机制"这个主题中,我们将深入探讨JVM如何管理...这份文档详尽地涵盖了JVM内存管理的各个方面,是Java开发者不可或缺的学习资料。
JVM的内存结构是Java开发者需要了解的基础知识之一,本文将深入解析JVM之内存结构及字符串常量池。 JVM的内存结构可以分为五大区域:程序计数器、虚拟机栈、本地方法栈、方法区和堆。其中,程序计数器、虚拟机栈和...
### JVM基础知识详解 #### 一、JVM组成与特性 JVM(Java Virtual Machine)即Java虚拟机,它是运行Java程序的核心组件之一。通过理解JVM的组成部分,可以帮助开发者更好地进行程序开发与优化。 ##### 1. 组成部分...
本手册旨在为初学者提供关于 JVM 的基础知识,重点介绍 JVM 内存模型中的关键概念。 #### JVM 内存模型概览 JVM 在执行 Java 程序的过程中,将其所管理的内存划分为几个不同的区域,每个区域有其特定的功能和生命...