JAVA面试题-什么是java中的常量池?

embedded/2025/1/11 10:59:55/

常量池分为两个地方:运行时常量池 和 字符串常量池 运行时常量池: 字节码文件里面有个constant pool,存储着编译时生成的常量信息,在运行的时候,这些信息会被放在方法区中的运行时常量池中。 字符串常量池:存储一些字符串常量,位于堆区。 作用:避免重复创建相同的对象,节省内存并提高效率,

延伸→字符串常量池能否被垃圾回收?大量不同字符串不断intern()会导致内存溢出吗?

  • 在Java 6之前,字符串常量池位于永久代(PermGen),由于永久代的垃圾回收效果不佳,如果字符串常量池中含有大量的字符串,很容易造成永久代溢出。

  • 从Java 7开始,字符串常量池被挪到了堆中,堆空间一般比较大,且堆空间的回收效率较高,因此内存溢出的情况大大减少。

  • 在Java 8中,字符串常量池仍然位于堆中,并且使用了元空间(Metaspace)代替永久代。元空间的内存大小取决于本地内存大小,这意味着字符串常量池的容量不再受限于JVM的固定内存大小,从而减少了内存溢出的风险

因此在java6之前,不断intern()不同字符串很容易就会造成内存溢出,java7以及java8之后这个情况就改善很多了。


http://www.ppmy.cn/embedded/152990.html

相关文章

Github 2025-01-08 C开源项目日报 Top10

根据Github Trendings的统计,今日(2025-01-08统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目10Shell项目1Redis - 内存数据库和数据结构服务器 创建周期:5411 天开发语言:C协议类型:BSD 3-Clause “New” or “Revised” License…

sosadmin相关命令

sosadmin命令 以下是本人翻译的官方文档,如有不对,还请指出,引用请标明出处。 原本有个对应表可以跳转的,但是CSDN的这个[](#)跳转好像不太一样,必须得用html标签,就懒得改了。 sosadmin help 用法 sosadm…

根据浏览器的不同类型动态加载不同的 CSS 文件

实现思路: 安装并引入 vue 项目相关的 CSS 文件:首先确保你有为不同浏览器准备了不同的 CSS 文件(例如,style-chrome.css,style-firefox.css,style-ie.css 等)。 在 index.js 中根据浏览器类型…

移动 web :平面转换,渐变

平面转换 平移效果 平移实现居中效果 双开门案例 : 设置父级背景图片,子级两张图片在父级上,分别占据 50%的宽度设置鼠标悬停效果,鼠标悬停,那么两张子级图片分别左右平移,而且设置过渡效果再在父级中设置溢…

为深度学习引入张量

为深度学习引入张量 什么是张量? 神经网络中的输入、输出和转换都是使用张量表示的,因此,神经网络编程大量使用张量。 张量是神经网络使用的主要数据结构。 张量的概念是其他更具体概念的数学概括。让我们看看一些张量的具体实例。 张量…

Ruby语言的软件开发工具

Ruby语言的软件开发工具概述 引言 Ruby是一种简单且功能强大的编程语言,它以优雅的语法和灵活性而闻名。自1995年首次发布以来,Ruby已经被广泛应用于各种开发领域,特别是Web开发。随着Ruby语言的普及,相关的开发工具也日益丰富。…

【文件I/O】 总表和分表

在 Linux 系统中,文件操作中涉及的 总表 和 分表 是 文件描述符管理机制中 的两个重要概念。它们分别对应于 系统级别的文件表 和 进程级别的文件表。 总表(系统文件表) 总表 是 系统级别 的文件表,记录系统中所有打开文件的信息…

HTML5实现好看的博客网站、通用大作业网页模板源码

HTML5实现好看的博客网站、通用大作业网页模板源码 前言一、设计来源1.1 主界面1.2 列表界面1.3 文章界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的博客网站、通用大作业网页模板源码,博客网站源码,HTML模板源码&#xff0…