`
nannan408
  • 浏览: 1783183 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

架构师面试之-------谈谈jvm中堆和栈的区别

 
阅读更多
1.前言。
   其实jvm能优化的空间不多,最主要的是使用的共享内存不要超过默认的2g或者自己调的参数。但了解一下还是有点意思的,建议面试时还是要看,别学笔者裸奔。
2.区别。
  网上说是有5点区别。但笔者认为只有两点主要区别。

堆--用new建立,垃圾自动回收负责回收
1、堆是一个"运行时"数据区,类实例化的对象就是从堆上去分配空间的;
2、在堆上分配空间是通过"new"等指令建立的;
3、Java针对堆的操作和C++的区别就是,Java不需要在空间不用的时候来显式的释放;
4、Java的堆是由Java的垃圾回收机制来负责处理的,堆是动态分配内存大小,垃圾收集器可以自动回收不再使用的内存空间。
5、但缺点是,因为在运行时动态分配内存,所以内存的存取速度较慢。


1、栈中主要存放一些基本类型的变量(int, short, long, byte, float, double, boolean, char)和对象句柄;
2、栈的存取速度比堆要快;
3、栈数据可以共享;
4、栈的数据大小与生存期必须是确定的,缺乏灵活性。


笔者认为就两点:
(1)堆主要放new的对象,而栈放基本类型和句柄,句柄指向的是堆。
(2)垃圾回收的时候回收的是堆,栈比较难回收,一般不回收(这个才是问你的原因,呵呵)。

3.总结。
就速度而言,都是内存操作,其实并没有很大区别。
0
1
分享到:
评论

相关推荐

    nginx-upstream-jvm-route-1.15

    用户需要按照文档的指示进行配置和部署,以便在Nginx 1.15中成功使用upstream模块与JVM的路由功能。 总的来说,"nginx-upstream-jvm-route-1.15"是一个针对Nginx 1.15版本的解决方案,它允许用户通过upstream模块更...

    nginx-upstream-jvm-route 和 nginx 对应版本,亲测可用

    此资源有两个文件,含 nginx-upstream-jvm-route 和 nginx 对应版本,都是tar.gz文件。 安装方法网上很多就不写了,亲测可用。 不用担心版本不匹配造成安装失败,再浪费积分去到处下载尝试的烦恼。 此资源有两个文件...

    kotlinx-coroutines-io-jvm-0.1.1.jar

    kotlinx-coroutines-io-jvm-0.1.1.jar

    面试总结-JVM .png

    JVM 的运行机制 多线程 JVM 的内存区域 JVM 会创建操作系统的接口创建一个原生线程。JVM 线程和操作系统线程是一一对应的

    metrics-jvm-3.1.5-API文档-中文版.zip

    赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    metrics-jvm-3.1.5-API文档-中英对照版.zip

    赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    面试-JVM+多线程v2

    面试-JVM+多线程v2 面试-JVM+多线程v2面试-JVM+多线程v2 面试-JVM+多线程v2面试-JVM+多线程v2 面试-JVM+多线程v2面试-JVM+多线程v2 面试-JVM+多线程v2面试-JVM+多线程v2 面试-JVM+多线程v2面试-JVM+多线程v2 面试-...

    nginx-upstream-jvm-route nginx共享Session

    这通常在构建高可用性和负载均衡的Web服务架构中是必要的,以确保用户在与多个后端服务器交互时,其Session状态可以被正确地跟踪和维护。 描述中的"invalid parameter "srun_id=a""可能是一个错误提示,意味着在...

    2. 高频面试题-JVM-3876439997404198.md

    2. 高频面试题-JVM-3876439997404198.md

    nginx-upstream-jvm-route-1.12.0.tar.gz

    nginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。 安装方法(进入Nginx源码目录): #patch -p0 < /path/to/this/directory/jvm_route.patch # ./configure -...

    面试-Java一些常见面试题+题解之JVM-JVM.zip

    在Java面试中,JVM相关知识是必不可少的一部分,因为理解JVM的工作原理和调优技巧对于开发高效、稳定的Java应用至关重要。下面将详细阐述JVM的一些核心概念和面试常考知识点。 1. **类加载机制**:Java程序的运行...

    nginx-upstream-jvm-route-0.1.tar.gz

    在现代Web应用架构中,负载均衡和高可用性是不可或缺的组成部分。Nginx作为一款高性能的反向代理服务器,常被用于处理HTTP和HTTPS请求,通过Upstream模块实现对后端服务器的负载均衡。而当我们的后端服务器选择...

    weilei-JVM-ppt.rar

    6. **异常处理**:介绍异常在JVM中的处理方式,包括如何抛出、捕获和处理异常,以及栈跟踪信息。 7. **多线程与并发**:讲解JVM中的线程创建、同步机制(如synchronized、Lock),以及并发容器(如...

    2024年java面试题-jvm之java虚拟机面试题

    ### 2024年Java面试题:JVM之Java虚拟机面试题 #### Java内存模型及基础知识 **1. Java代码如何被计算机识别** Java程序最初由开发人员使用Java语法编写,这些代码人类可读但计算机无法直接理解。为了使计算机...

    java-java面试题库整理-基础-JVM-线程并发-框架等.zip

    - 内存管理:理解栈内存和堆内存的区别,以及垃圾回收机制。 - 集合框架:掌握ArrayList、LinkedList、HashMap、HashSet等容器的使用及其原理。 - 泛型:了解泛型的作用,如何使用泛型类和泛型方法。 - I/O流:...

    JVM图解-JVM指令-JVM原型图.rar

    在这个压缩包中,"JVM图解.png"可能是对JVM内部结构的可视化表示,"JVM图解"可能是一个详细的文档,解释了JVM的工作原理,而"JVM指令手册 中文版"则提供了JVM可执行的所有指令的详细信息。下面,我们将深入探讨JVM的...

    基于jvm-sandbox-repeater重新开发的一款流量回放平台产品

    Moonbox(月光宝盒)是一个无侵入的线上流量录制 和流量回放平台,沿用了jvm-sandbox-repeater的SPI设计,并提供了大量的常用插件,同时也提供数据统计和存储能力。通过Moonbox可以实现自动化测试、线上问题追踪、和...

    JAVA-JVM-面试题

    JAVA-JVM-面试题,java面试题

    面试专题-JVM专题部分

    JVM在面试中是一个常见的考察点,特别是对于Java开发人员而言,理解JVM的工作原理和性能优化技巧至关重要。本专题将围绕JVM的面试知识点进行深入探讨。 首先,我们要了解JVM的内存结构,这包括堆内存(Heap)、方法...

    java-JVM-面试题

    在面试中,理解JVM的工作原理和技术细节是非常重要的。以下是一些常见的JVM面试题及其详细解释: 1. **什么是JVM?** JVM(Java Virtual Machine)是Java的运行时环境,它负责加载、解析、执行Java字节码(.class...

Global site tag (gtag.js) - Google Analytics