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对象机制 字符串缓冲池 字符串拼接机制