面试题:Stringa="ab";Stringb="a"+"b";a==b是否相等
面试考察点
考察目的:考察对JVM基础知识的理解,涉及到常量池、JVM运行时数据区等。
考察范围:工作2到5年。
背景知识
要回答这个问题,需要搞明白两个最基本的问题
Stringa=“ab”,在JVM中发生了什么?
Stringb=“a”+“b”,底层是如何实现?
JVM的运行时数据
首先,我们一起来复习一下JVM的运行时数据区。
为了让大家有一个全局的视角,我从类加载,到JVM运行时数据区的整体结构画出来,如下图所示。
对于每一个区域的作用,在我之前的面试系列文章中有详细说明,这里就不做复述了。
在上图中,我们需要重点