- 优点:节省大量内存
- 缺点:略微多占用cpu时间,新生代回收时间略微增加
-XX:+UseStringDeduplication
String s1 = new String("hello");//char[] {'h','e','l','l','o'}
String s2 = new String("hello");//char[] {'h','e','l','l','o'}
- 将所有新分配的字符串放入一个队列
- 当新生代回收时,G1并发检查是否有字符串重复
- 如果它们值一样,让它们引用同一个char[]
- 注意,与String.intern()不一样
- String.intern()关注的是字符串对象
- 而字符串去重关注的是char[]
- 在JVM内部,使用了不同的字符串表
原创文章,作者:彭晨涛,如若转载,请注明出处:https://www.codetool.top/article/jdk8u20%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%8e%bb%e9%87%8d/
相关推荐
-
对象的输入输出-Java序列化机制
对象序列化和反序列化,在Java中体现为两种字节流: ObjectInputStream、ObjectOutputStream 序列化的概念 指堆内存中的java对象数据,通过某种...
-
PriorityQueue源码分析
总结 总结放前面防止太长不看: PriorityQueue是个最小堆,如果要改变排序顺序只能重写比较器传入构造方法。 内部元素要么实现Comparable接口,要么传入比较器进行比...
-
HashMap源码分析
HashMap是java中非常常见的一个数据结构,在这篇文章里,我依然以Map中的操作为导向来循序渐进研究HashMap中的源码,阅读这篇文章需要的前置知识有: 弱平衡的二叉查找树...
-
Servlet4.0初识总结
JavaEE8 JavaEE8,是自2013年6月Java企业版的首次更新。JAVAEE8提供了一些新的API,提供了对HTTP/2的新支持。 Servlet4.0 Servlet...
-
深入理解java虚拟机第三版读书笔记07
附: Java虚拟机规范-Java虚拟机指令集:JDK8 Java虚拟机规范-Java虚拟机指令集:JDK13 续深入理解java虚拟机第三版读书笔记06 字节码指令简介 Java...
-
Java基础查缺补漏05
继续我的复习刷题 可以有和类名同名的函数 题目: JAVA中,下列语句哪一个正确() A. class中的constructor不可省略B. constructor必须与class...
-
深入理解java虚拟机第三版读书笔记12
以下是第十二章 Java内存模型与线程的内容 硬件的效率与一致性 基于高速缓存的存储交互很好地解决了处理器与内存速度之间的矛盾,但是也为计算机系统带来更高的复杂度,它引入了一个新的...
-
MySQL之内存管理和优化
内存优化原则 将尽量多的内存分配给MySQL做缓存,但要给操作系统和其他程序预留足够内存。 MyISAM 存储引擎的数据文件读取依赖于操作系统自身的IO缓存,因此,如果有MyISA...
-
数据库技术之分库分表
推荐阅读: MySQL之分区表介绍 区别于分区的是,分区一般都是放在单机里的,用的比较多的是时间范围分区,方便归档。只不过分库分表需要代码实现,分区则是mysql内部实现。分库分表...
-
MySQL之分区表介绍
本文大部分参考自《MySQL技术内幕:InnoDB存储引擎》 概述 对于InnoDB,分区就是把一个数据表的物理存储拆分为多个ibd文件(相当于独立表空间再拆分成了多个表空间)。分...