美文网首页
String常量池

String常量池

作者: 肚皮怪_Sun | 来源:发表于2018-03-12 22:46 被阅读0次

在java中String是存在于常量池中。也就是说一个String被定义之后它就被缓存到了常量池中,当其他地方使用同样的字符串时,则直接使用时缓存,而不会重复创建。

    String str1 = new String("abc");
    String str2 = "abc";
    String str3 = new String("abc");
    String str4 = "ab" + "c";

    System.out.println(str1.equals(str2));
    System.out.println(str1.equals(str3));
    System.out.println(str2.equals(str3));
    System.out.println("================================================");
    System.out.println(str1==(str2));
    System.out.println(str1==(str3));
    System.out.println(str2==(str3));
    System.out.println(str2==(str4));

输出如下:

true
true
true
================================================
false
false
false
true

string的equals只是根据字符值进行判断,因此前三个的值为true
通过“==”判断的是两个对象指向的内存地址是否相等。
str1和str3都是通过new构建出来的,而str2str4是通过字面赋值的。
最后一个通过“==”判定的值为true,也就是说是同一个对象,str4使用了缓存在常量池中str2对象

相关文章

  • java-为什么String要设计成不可变的?

    1 字符串常量池的需要 字符串常量池(String pool,String intern pool, String...

  • 细说Java常量池

      Java中的常量池有:class常量池、运行时常量池、String常量池。 为什么要使用常量池?   避免频繁...

  • 关于String和StringBuffer

    String 和 StringBuilder的区别 String类的学习(可以结合字符串常量池 常量池 运行时常量...

  • 为什么String要设计成不可变的?

    1. 字符串常量池的需要 字符串常量池(String pool,String intern pool, Strin...

  • String常量池

    在java中String是存在于常量池中。也就是说一个String被定义之后它就被缓存到了常量池中,当其他地方使用...

  • String常量池

    java中有几种不同的常量池,以下的内容是对java中几种常量池的介绍以及重点研究一下字符串常量池。 class常...

  • String的那些事

    String常量池与堆 String a=("123")直接使用的是常量池中的引用,所以a和b所引用的都是常量池中...

  • Java String常量池

    1. String实例的初始化 String类型的初始化在Java中分为两类: 一类是通过双引号包裹一个字符来初始...

  • 13.Java中几种常量池的区分

    Java中几种常量池的区分 1. 全局字符串池(string pool) string pool也有叫做strin...

  • String面试题

    1、判断s1和s2是否相等 String字符串属于常量,常量需要进入内存中的字符串常量池(进入常量池规则:如果常量...

网友评论

      本文标题:String常量池

      本文链接:https://www.haomeiwen.com/subject/isntfftx.html