java内存分配和String类型的深度解析
一、引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析关于String的许多令人迷惑的问题。下面是本文将要涉及到的一些问题,如果读者对这些问题都了如指掌,则可忽略此文。 1、java内存具体指哪块内存?这块内存区域为什么要进行划分?是如何划分的?划分之后每块区域的作用是什么?如何设置各个区域的大小? 2、String类型在执行连接操作时,效率为什么会比StringBuffer或者StringBuilder低?StringBuffer和StringBuilder有什么联系和区别? 3、java中常量是指什么?String s = "s" 和 String s = new String("s") 有什么不一样? 本文经多方资料的收集整理和归纳,最终撰写成文,如果有错误之处,请多多指教! 二、java内存分配 1、JVM简介 Java 虚拟机 (Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是 Java语言 的运行环境,它是Java 最具吸引力的特性之一。J ava虚拟机有自己完善的 硬体 架构,如 处理器 、 堆栈 、 寄存器 等,还具有相应的 指令 系统。JVM屏蔽了与具体 操作系统 平台相关的信息,使得Java 程序