- 优点:节省大量内存
- 缺点:略微多占用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中的引用(一)——Reference - 简书 深入理解Java中的引用(二)——强软弱虚引用 - 简书 深入理解Java中的引用(三)——Dire...
-
Java网络套接字Socket编程
Socket概述 Socket,译作网络套接字,是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。网络套接字与一个应用进程(ip和端口号)绑定。 Socket与Ser...
-
Java中的File类以及IO流
File 类 概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 构造方法 public File(String path...
-
try-catch-finally字节码实例探究
本文使用Idea的jclasslib插件查看字节码。本文全程自言自语,请勿自行代入。 概述 java是怎么处理try-catch-finally的? 我们在深入理解java虚拟机第...
-
常用开源数据库连接池C3P0、Druid介绍
概述 很多时候,连接的混乱管理所造成的系统资源开销过大成为制约大型企业级应用效率的瓶颈。因为每一次WEB请求都要建立一次数据库连接,建立连接是一个耗费资源的活动,每次都得花费0.0...
-
MySQL之并发参数调整
从实现上来说,MySQL Server 是多线程结构,包括后台线程和客户服务线程。多线程可以有效利用服务器资源,提高数据库的并发性能。在Mysql中,控制并发连接和线程的主要参数包...
-
Java基础查缺补漏04
继续我的复习刷题 接口方法可以使用abstract修饰 问题: java接口的方法修饰符可以为?(忽略内部接口) A. privateB. protectedC. finalD. ...
-
Java自动装箱缓存机制
尝试运行这段代码: 相似的两段代码,得到的结果却完全不相同。 首先要知道在java中==比较的是对象的引用,从直觉出发,无论是integer1、integer2还是integer3...
-
Java基础查缺补漏02
哈哈我其实没有想到这个系列真会有续集,上次写完01以后以为不会再写下去了,没想到最近牛客网刷题有些题目还是挺纠结的,这里补一补 构造器能带哪些修饰符 题目: Which of th...
-
深入理解java虚拟机第三版读书笔记07
附: Java虚拟机规范-Java虚拟机指令集:JDK8 Java虚拟机规范-Java虚拟机指令集:JDK13 续深入理解java虚拟机第三版读书笔记06 字节码指令简介 Java...