ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java开发者跳槽指南全网疯传

2021-06-30 16:03:09  阅读:148  来源: 互联网

标签:Java Spring 虚拟机 面试 线程 开发者 JVM ActiveMQ 网疯


# 三、堆空间 **基本描述** JVM启动时创建堆区,是内存管理的核心区,通常情况下也是最大的内存空间,是被所有线程共享的,几乎所有的对象实例都要在堆中分配内存,所以这里也是垃圾回收的重点空间。 **堆栈关系** ![](http://www.icode9.com/i/li/?n=2&i=images/20210630/1625039827584477.jpg) 栈是JVM运行时的单位,堆是存储单位,当栈中方法结束,相关对象失去所有引用后,不会马上被移除堆空间,要等到垃圾收集器运行的时候。 # 四、虚拟机栈 虚拟机栈(Java栈)在每个线程创建时都会生成一个虚拟机栈,栈的内部是一个个栈帧单元,对应Java方法的调用,其生命周期和线程周期保持一致。用来存储方法的局部遍历,部分执行结果,方法的调用和返回。 ![](http://www.icode9.com/i/li/?n=2&i=images/20210630/1625039827747792.jpg) 栈帧是方法执行的数据集,维持执行过程中的各种数据信息,执行的方法依次入栈,栈顶存放当前要执行的方法,执行结束后出栈,对于栈没有垃圾回收问题。 # 五、程序计数器 **基本描述** JVM中程序计数寄存器用来存储下一条将要执行指令的地址,执行引擎获取到指令后进行执行,是线程私有的。它可以看作是当前线程所执行的字节码的行号指示器。 ![](http://www.icode9.com/i/li/?n=2&i=images/20210630/1625039828588646.jpg) **前后关系** 线程在获取CPU的时间段内执行代码,但是线程随时可能没有执行完就被挂起,等到线程A再次获取CPU执行时,CPU 得知道执行到线程A的哪一个指令,程序计数器会存储该动作。 # 六、本地方法栈 本地方法栈与虚拟机栈所起到的作用是类似的,虚拟机栈为虚拟机执行Java方法,本地方法栈管理虚拟机使用到的 本地方法,在虚拟机规范中对本地方法栈中方法使用的语言、使用方式与数据结构并没有强制规定,因此具体的虚拟机可以自由实现它。HotSpot虚拟机直接就把本地方法栈和虚拟机栈合二为一。 ### 最后 **给读者们一个小福利,有需要这些资料的朋友们[可以点击我,即可免费](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)领取资料!** ### ActiveMQ消息中间件面试专题 * 什么是ActiveMQ? * ActiveMQ服务器宕机怎么办? * 丢消息怎么办? * 持久化消息非常慢怎么办? * 消息的不均匀消费怎么办? * 死信队列怎么办? * ActiveMQ中的消息重发时间间隔和重发次数吗? **ActiveMQ消息中间件面试专题解析拓展:** ![BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM](http://www.icode9.com/i/li/?n=2&i=images/20210630/1625039828681707.jpg) * * * # redis面试专题及答案 * 支持一致性哈希的客户端有哪些? * Redis与其他key-value存储有什么不同? * Redis的内存占用情况怎么样? * 都有哪些办法可以降低Redis的内存使用情况呢? * 查看Redis使用情况及状态信息用什么命令? * Redis的内存用完了会发生什么? * Redis是单线程的,如何提高多核CPU的利用率? ![BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM](http://www.icode9.com/i/li/?n=2&i=images/20210630/1625039830469162.jpg) * * * # **Spring面试专题及答案** * 谈谈你对 Spring 的理解 * Spring 有哪些优点? * Spring 中的设计模式 * 怎样开启注解装配以及常用注解 * 简单介绍下 Spring bean 的生命周期 **Spring面试答案解析拓展** ![BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM](http://www.icode9.com/i/li/?n=2&i=images/20210630/1625039830245201.jpg) * * * # 高并发多线程面试专题 * 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行? * Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。 * Java 中 wait 和 sleep 方法有什么区别? * 如何在 Java 中实现一个阻塞队列? * 如何在 Java 中编写代码解决生产者消费者问题? * 写一段死锁代码。你在 Java 中如何解决死锁? **高并发多线程面试解析与拓展** ![BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM](http://www.icode9.com/i/li/?n=2&i=images/20210630/1625039830941426.jpg) * * * # jvm面试专题与解析 * JVM 由哪些部分组成? * JVM 内存划分? * Java 的内存模型? * 引用的分类? * GC什么时候开始? **JVM面试专题解析与拓展!** ![BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM](http://www.icode9.com/i/li/?n=2&i=images/20210630/1625039839345243.jpg)

标签:Java,Spring,虚拟机,面试,线程,开发者,JVM,ActiveMQ,网疯
来源: https://blog.51cto.com/u_15288750/2959294

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有