iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >java中String.intern()方法有什么功能
  • 855
分享到

java中String.intern()方法有什么功能

2023-06-30 18:06:33 855人浏览 安东尼
摘要

这篇文章主要介绍“java中String.intern()方法有什么功能”,在日常操作中,相信很多人在java中String.intern()方法有什么功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jav

这篇文章主要介绍“java中String.intern()方法有什么功能”,在日常操作中,相信很多人在java中String.intern()方法有什么功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中String.intern()方法有什么功能”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

String.intern原理

String.intern():
    此方法是一个Native方法
      底层调用c++的 StringTable::intern方法实现

    当通过语句str.intern()调用intern()方法后
    JVM 就会在当前类的常量池中查找是否存在与str等值的String
     若存在则直接返回常量池中相应Strnig的引用
     若不存在,则会在常量池中创建一个等值的String
       然后返回这个String在常量池中的引用
     ---------------------------------------------------------------
     因此,只要是等值的String对象
        使用intern()方法返回的都是常量池中同一个String引用
     所以,这些等值的String对象通过intern()后使用==是可以匹配的

jdk6中String.intern()

Jdk6中常量池位于PermGen(永久代)中
 PermGen是一块主要用于存放已加载的类信息和字符串池的大小固定的区域
--------------------------------------------------------------------------
 运行intern()方法时
当常量池中不存在等值的字符串,JVM就会在常量池中创建一个等值的字符串
  然后返回该字符串的引用
除此以外,JVM 会自动在常量池中保存一份之前已使用过的字符串集合
 Jdk6中使用intern()方法的主要问题就在于常量池被保存在PermGen(永久代)中

注意事项:
    首先PermGen是一块大小固定的区域,一般不同的平台PermGen的默认大小也不相同,
   大致在32M到96M之间。
   所以不能对不受控制的运行时字符串(如用户输入信息等)使用intern()方法,
    否则很有可能会引发PermGen内存溢出;
   其次String对象保存在Java堆区,Java堆区与PermGen是物理隔离的,
  因此如果对多个不等值的字符串对象执行intern操作,
  则会导致内存中存在许多重复的字符串,会造成性能损失 

JDK7中String.intern()

Jdk7将常量池从PermGen区移到了Java堆区
   运行intern操作时
  当常量池已经存在该字符串,则直接返回字符串引用
  否则复制该字符串对象的引用到常量池中并返回
  堆区的大小一般不受限,所以将常量池从PremGen区移到堆区使得常量池的使用不再受限于固定大小
  除此之外,位于堆区的常量池中的对象可以被垃圾回收
   当常量池中的字符串不再存在指向它的引用时,JVM就会回收该字符串
   可以使用 -XX:StringTableSize 虚拟机参数设置字符串池的map大小
   字符串池内部实现为一个HashMap
   所以当能够确定程序中需要intern的字符串数目时
   可以将该map的size设置为所需数目*2(减少hash冲突)
   这样就可以使得String.intern()每次都只需要常量时间和
    相当小的内存就能够将一个String存入字符串池中
 String.intern()方法的功能:
    其功能手动将字符串放入常量池中 

到此,关于“java中String.intern()方法有什么功能”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: java中String.intern()方法有什么功能

本文链接: https://www.lsjlt.com/news/330731.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中String.intern()方法有什么功能
    这篇文章主要介绍“java中String.intern()方法有什么功能”,在日常操作中,相信很多人在java中String.intern()方法有什么功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jav...
    99+
    2023-06-30
  • java中String.intern()方法功能介绍
    下文笔者讲述java中String.intern()方法的功能简介说明,如下所示: String.intern原理 String.intern():    此方法...
    99+
    2024-04-02
  • Nacos中使用String.intern方法有什么用
    这篇文章主要讲解了“Nacos中使用String.intern方法有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nacos中使用String.int...
    99+
    2024-04-02
  • java的executor包有什么功能
    本篇内容主要讲解“java的executor包有什么功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java的executor包有什么功能”吧!sql语句中的参数赋值是有由executor包中...
    99+
    2023-06-29
  • ES2018中有什么功能
    这篇文章主要介绍了ES2018中有什么功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ES2018 规范引入了四个新功能。这些功能包括异步...
    99+
    2024-04-02
  • java中tostring方法有什么用
    Java中的toString方法主要用于返回对象的字符串表示形式。它可以用于打印对象的信息、调试代码以及方便地将对象转换为字符串进行...
    99+
    2023-08-18
    java tostring
  • Java中main方法有什么用
    这篇文章主要介绍了Java中main方法有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 深入理解 main 方法解释main方法的形式:public static...
    99+
    2023-06-25
  • jquery中html方法实现了什么功能
    今天小编给大家分享一下jquery中html方法实现了什么功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • Java的aixcoder插件有什么功能
    本篇内容主要讲解“Java的aixcoder插件有什么功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的aixcoder插件有什么功能”吧!下面是使用时候的录制效果,写起 Java 代...
    99+
    2023-06-16
  • java中的charat方法有什么用
    charAt方法是用来获取字符串中指定索引位置上的字符。具体用途包括: 获取字符串中特定位置上的字符,可以用于遍历字符串中的每个字...
    99+
    2024-04-02
  • java中tostring方法有什么作用
    Java中的toString方法用于返回对象的字符串表示形式。它通常被用于打印对象的值或调试目的。具体来说,当一个对象被传递给Sys...
    99+
    2023-08-31
    java tostring
  • JAVA中方法重载有什么用
    这篇文章将为大家详细讲解有关JAVA中方法重载有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在Java 中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况...
    99+
    2023-06-03
  • java分页功能实现的方法有哪些
    实现Java分页功能的方法有以下几种:1. 使用数据库的分页查询功能:在SQL语句中使用LIMIT和OFFSET子句来限制查询结果的...
    99+
    2023-09-27
    java
  • Java编程语言具有什么功能
    这篇文章主要介绍“Java编程语言具有什么功能”,在日常操作中,相信很多人在Java编程语言具有什么功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java编程语言具有什么功能”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • java中start方法与run方法有什么区别
    本篇文章给大家分享的是有关java中start方法与run方法有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java有哪些集合类Java中的集合主要分为四类:1、Li...
    99+
    2023-06-14
  • sql中的timestamp有什么功能
    在SQL中,TIMESTAMP是一种数据类型,用于存储日期和时间的值。它可以用来记录数据的创建时间、更新时间或其他时间相关的信息。T...
    99+
    2024-02-29
    sql
  • Cassandra中的TTL有什么功能
    TTL(Time to Live)是Cassandra中一个非常有用的功能,它用于设置数据在数据库中的存活时间。通过设置TTL,用户...
    99+
    2024-04-02
  • java中file类的功能是什么
    File类在Java中用于表示文件(文件路径和文件名)或目录(文件夹路径和文件夹名)的抽象表示。它提供了一些方法来操作文件和目录,包...
    99+
    2023-10-24
    java
  • Watchtower有什么功能
    本篇内容主要讲解“Watchtower有什么功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Watchtower有什么功能”吧!前言Docker 容器的部署有一种在手机上装 App 的感觉,但...
    99+
    2023-06-15
  • Fleet有什么功能
    本篇内容介绍了“Fleet有什么功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Fleet,一个有一点不一样的轻量级编辑器!当您第一次启动...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作