0

0

intern() 方法的作用是什么

舞姬之光

舞姬之光

发布时间:2026-04-21 21:40:26

|

244人浏览过

|

来源于php中文网

原创

intern()方法的核心作用是复用字符串,减少重复对象、节省内存并支持高效引用比较;调用时若常量池已存在等值字符串则返回其引用,否则将当前字符串引用加入池中并返回,JDK7+在堆中直接存引用,避免复制。

intern() 方法的作用是什么

intern() 方法的核心作用是复用字符串,减少重复对象,节省内存,并支持高效引用比较。

让相同内容的字符串指向同一个对象

Java 中字符串常量池(String Pool)是一个特殊区域,用于存放字面量字符串(如 "hello")。调用 intern() 时,JVM 会检查池中是否已存在内容相同的字符串:

  • 如果存在,直接返回池中那个字符串的引用;
  • 如果不存在,就把当前字符串对象的引用加入池中,再返回该引用。

这意味着,即使两个字符串对象最初在堆中不同(比如通过 new String("abc") 创建),只要它们调用了 intern() 且内容一致,最终就可能 == 比较为 true。

适用于频繁出现的字符串场景

当程序中存在大量重复内容的字符串(如解析 JSON 的字段名、日志中的固定标签、配置项键名等),手动调用 intern() 可显著降低内存占用:

百度搜索AI探索版
百度搜索AI探索版

百度搜索AI探索版,新一代AI搜索引擎

下载
  • 避免成百上千个内容相同的 String 对象堆积在堆中;
  • 后续用 == 判断相等比 equals() 更快(尤其在高频分支判断中)。

注意 JDK 版本差异

行为关键取决于 JVM 版本:

  • JDK 6:字符串池在永久代(PermGen),intern() 会把字符串“拷贝”一份进池;
  • JDK 7+:字符串池移到堆中,intern() 不复制内容,而是直接在池中存一个指向原堆对象的引用——更省内存,也更符合直觉。

不是所有字符串都适合 intern

滥用反而有害:

  • 随机生成、几乎不重复的字符串(如 UUID、时间戳拼接)调用 intern() 会导致池持续膨胀,甚至引发内存泄漏;
  • 短生命周期字符串没必要进池;
  • 多线程环境下无额外同步开销,但池本身是全局共享的,高频调用仍需关注 GC 压力。

相关标签:

int

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

通义千问
通义千问

阿里巴巴推出的全能AI助手

Claude
Claude

Anthropic发布的与ChatGPT竞争的聊天机器人

Cursor
Cursor

一个新的IDE,使用AI来帮助您重构、理解、调试和编写代码。

Hermes Agent
Hermes Agent

一位与您共同成长的Agent

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1438

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

820

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

566

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

281

2025.08.29

Midjourney AI参数详解_Midjourney AI高级功能教程
Midjourney AI参数详解_Midjourney AI高级功能教程

本教程深度解析Midjourney V8.1核心参数体系,助您从新手进阶为指令大师。内容涵盖构图控制(--ar)、风格化程度(--s)、随机性调节(--chaos)及模型版本(--v)的精准设置。重点讲解“原始模式”(--style raw)还原真实质感,以及“负面提示”(--no)排除干扰元素的实战技巧。通过参数组合调优,实现从随机抽卡到精准控制画面的专业级创作。

2

2026.04.22

Midjourney AI绘图提示词指南_Midjourney AI生成图片教程
Midjourney AI绘图提示词指南_Midjourney AI生成图片教程

本指南深度解析2026年Midjourney V8.1提示词核心逻辑。内容涵盖“主体+环境+风格+参数”黄金公式,详解权重语法(::)、负面提示(--no)及风格化数值(--s)的精准调控。针对写实摄影、二次元及商业设计场景,提供结构化咒语模板与光影构图技巧,助您精准掌控AI画笔,从随机抽卡进阶为指令大师。

1

2026.04.22

phpEnv 下载安装与快速入门指南
phpEnv 下载安装与快速入门指南

面向 PHP 开发新手,详细介绍 phpEnv 集成环境的下载渠道、安装步骤与首次启动配置,讲解控制面板功能认识、Apache / Nginx Web 服务与 MySQL 数据库的一键启停操作、站点根目录设置与默认页面访问验证,帮助初学者在最短时间内搭建起可用的本地 PHP 开发环境。

4

2026.04.22

Midjourney AI入门教程_Midjourney AI基础使用指南
Midjourney AI入门教程_Midjourney AI基础使用指南

本教程专为零基础用户打造,手把手带你掌握 AI 绘画核心技能。内容涵盖从 Discord 环境搭建、订阅计划选择,到 /imagine 指令的精准运用。你将学会构建“主体+风格+参数”的高效提示词,掌握 --ar 画幅调整与 --iw 图生图权重控制。无论是写实人像还是二次元插画,助你快速从新手进阶为 AI 创作高手。

2

2026.04.22

Xdebug 常见问题排查与配置优化
Xdebug 常见问题排查与配置优化

汇总 Xdebug 使用过程中最高频的问题及其解决方案,涵盖 IDE 监听无法连接(端口未开放 / 防火墙拦截 / client_host 配置错误)排查、断点不生效(路径映射错误 / OPcache 缓存干扰)处理、调试会话超时中断的参数调整、Xdebug 开启后页面加载缓慢的性能影响控制、xdebug.mode 多模式组合使用技巧、生产环境误开 Xdebug 的安全风险与防范措施、xdebug_info() 与日志文件(xdebug

19

2026.04.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送