java 字符串对象池

Posted 沉默有时是最好的诉说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 字符串对象池相关的知识,希望对你有一定的参考价值。

  java字符串是一个类,是java虚拟机在启动的时候会实例化9个对象池,其中9个对象池分别用来存储8种基本数据类型(int,float,double,byte,boolean,short,long,char)的包装类和String对象。

  Java String创建对象有两种方式,其中一种是通过直接创建:String str1="Stringhello",另外一种是通过构造函数:String str2=new String("stringhello");前者是通过在对象池里面取对象,后者是直接生成的一个对象。String str3="111";  String str4="111"; system.out.println(str3==str4);==>>输出为:true.这是因为str3和str4都是通过对象池获取,然而通过String str5=new String("111");system.out.println(str3==str5);==>>输出为:false.这是因为str3是通过对象池获取,而str5是直接创建,故而性质不同;

  == :这种比较方法引用性质要相同才是true,而equal()方法则只需要值相同即可。

以上是关于java 字符串对象池的主要内容,如果未能解决你的问题,请参考以下文章

java 创建string对象机制 字符串缓冲池 字符串拼接机制

Java字符串常量池

java 创建string对象机制 字符串缓冲池 字符串拼接机制 字符串中intern()方法

Java中的字符串常量池

java---堆栈常量池的存储数据

java创建字符串对象 的意思是否就是在堆内存开辟一个空间存放字符串?