当前位置: 首页 > news >正文

java 使用intern()性能对比

JDK 7及其之后的版本,intern()方法可以直接把堆中的字符串对象的地址放到字符串常量池表共享,从而达到节省内存的目的。

不使用intern()和使用intern()对象个数和内存占用区别


public class StringInternMemoryTest {static final int MAX_COUNT = 1000 * 10000;static final String[] arr = new String[MAX_COUNT];static final Integer[] data = new Integer[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};public static void main(String[] args) {long start = System.currentTimeMillis();for (int i = 0; i < MAX_COUNT; i++) {arr[i] = new String(String.valueOf(data[i % data.length])); //2814ms//arr[i] = new String(String.valueOf(data[i % data.length])).intern(); //1282ms}long end = System.currentTimeMillis();System.out.println("花费的时间为:" + (end - start));try {Thread.sleep(100000);} catch (InterruptedException e) {e.printStackTrace();System.gc();}}
}

内存对比如下:
在这里插入图片描述

对于内存占用使用intern方法,可以减少一半左右
时间上也有一半的差距


http://www.mrgr.cn/news/15420.html

相关文章:

  • 贪心算法---划分字母区间
  • mysql集群从零开始搭建
  • 怎么解决 hash 碰撞,用 C++ 实现 hashMap?
  • Docker原理及实例
  • 计算机毕业设计选题推荐-医院门诊预约-医院预约挂号微信小程序/安卓APP-项目实战
  • linux:网络编程之TCP
  • day02 1.c++对c的扩充
  • 【ShuQiHere】微调与训练恢复:理解 `load_weights` 和 `save_model` 的实用方法
  • 【Linux入门】shell基础篇——数组
  • glance学习小结
  • 在Ubuntu24.04上安装多主多从的高可用Kubernetes节点
  • 掌握Nginx负载均衡中的请求缓存处理:策略与实现
  • 轻松掌握 ViewPager2:打造流畅的页面切换体验
  • 基于PHP+MySQL组合开发的微信投票小程序 带完整的安装代码包以及搭建教程
  • 【推荐】Linux 推荐软件
  • 【iOS】iOS中简单的网络请求
  • LIN诊断(4)——Tp层函数LINtp.dll应用
  • 探索Edge-TTS与WebSocket集成:打造实时语音交互系统
  • 如何根据oom的信息找到对应的POD
  • 深入解析Nginx负载均衡中的`down`指令及其应用