首页 > 编程语言 >Java中的String的intren方法详解

Java中的String的intren方法详解

时间:2023-04-22 14:35:55浏览次数:32  
标签:Java String s3 intern new intren hello 常量

intern 方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池

String a=new String("hello").intern();
String b="hello";
System.out.println(a==b);//
String a=new String("hello");
a.intern();
String b="hello";
System.out.println(a==b);//

关键点是 jdk7 中常量池不在 Perm 区域了,这块做了调整。常量池中不需要再存储一份对象了,可以直接存储堆中的引用。这份引用指向s3 引用的对象。 也就是说引用地址是相同的。

String s3=new String("a")+new String("b");//常量池中是没有“ab”的
s3.intern();
String s4="ab";
System.out.println(s3==s4);//true

Java中的String的intren方法详解_字符串

标签:Java,String,s3,intern,new,intren,hello,常量
From: https://blog.51cto.com/u_16024790/6215260

相关文章

  • JavaScript奇技淫巧:Hook与反Hook
    JavaScript奇技淫巧:Hook与反Hook作者:专注于JS混淆加密的JShamanAPIHOOK技术,在PC时代曾盛行,是高端的技术。在JavaScript编程中,也可以应用APIHook技术实现不寻常的效果。例,evalhook:<html><script>//备份原window.eval函数var_eval=window.eval;//eval的hook函数window.eva......
  • java——微服务——spring cloud——微服务特征
                                                                                      ......
  • Java语言特性
    1.简单相对于c/c++来说简单2.面向对象面向过程:按照步骤执行面向对象:通过对象来完成操作,三大特征:封装,继承,多态1.封装:把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口2.继承:从已有类得到继承信息创建新类的过程3.多态:允许不同子类型的对象对同一消息作出不......
  • 理解Java程序的执行
    main方法publicclassSolution{publicstaticvoidmain(String[]args){Personperson=newPerson();person.hello();}}classPerson{publicvoidhello(){System.out.println("hello");}}源文件名是Solu......
  • 理解Java程序的执行
    main方法publicclassSolution{publicstaticvoidmain(String[]args){Personperson=newPerson();person.hello();}}classPerson{publicvoidhello(){System.out.println("hello");}}源文件名是Solu......
  • Java 计算两个 LocalDateTime 类型的变量之间差的小时数,保留4位小数
    为了计算两个LocalDateTime对象之间相差的小时数,并精确到小数点后4位,您可以使用Duration类。以下是一个示例:importjava.time.LocalDateTime;importjava.time.Duration;publicclassMain{publicstaticvoidmain(String[]args){LocalDateTimea=Loc......
  • JavaScript加密库
    JavaScript加密库有很多,以下是一些常见的加密库:CryptoJS:一个纯JavaScript编写的加密库,提供了各种加密算法和编码方式的实现,包括对称加密、哈希函数、消息认证码、数字签名等。sjcl:一个JavaScript编写的加密库,提供了对称加密、公钥加密、哈希函数等,支持多种加密算法和模式。for......
  • Java编码规范-字符串与Integer的比较,BigDecimal非空参数
    Java编码规范-字符串与Integer的比较,BigDecimal非空参数packagecom.example.core.mydemo;importjava.math.BigDecimal;publicclassIntTest{publicstaticvoidmain(String[]args){Integertype=2;//if("2".equals(type)){if(typ......
  • Java处理集合数据方式的建议
    1.循环循环是传统的迭代方式,可以使用for、while和do-while循环语句进行实现。循环的优点在于简单易懂,可以处理任何数据类型,并且可以更好地掌控程序流程。但是,在处理大量数据时,循环可能会出现效率问题,并且需要手动处理线程安全等问题。适用场景:处理小型数据集需要精细控......
  • Java中的自动装箱与自动拆箱
    前言在Java中,基本数据类型与其对应的封装类之间可以进行自动转换,这种特性称为自动装箱(autoboxing)和自动拆箱(unboxing)。自动装箱和自动拆箱使得我们在使用基本数据类型时更加方便,同时也提高了代码的可读性和健壮性。本文将详细介绍Java中的自动装箱和自动拆箱机制。基本数据类型......