zoukankan      html  css  js  c++  java
  • Java中字符串的几个实例

    String str=new String("abc");new 对象时,位于堆中,同时看字符串常量中是否有字符串"abc",如果没有,则进行添加,同时进行关联;

    如果有,则直接进行关联。

    String str="abc";对应于JVM内存模型中的方法区,方法区位于JVM内存模型的堆中,可叫做字符串常量区。

    public class synchronizedArrayList {
    
        //位置:存储在JVM内存模型的方法区中,而方法区位于JVM内存模型的堆中
        //字符串常量区,static和不是static都是存储在常量区中
        public static String str_static="good";
        public static void main(String[] args) {
    //存储在常量区中
            String str1 = "abc";         
            //当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),
            //则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。 
            //它遵循以下规则:对于任意两个字符串 s 和 t ,
            //当且仅当  s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true 。
            String str2 = new String("abc").intern();         
            System.out.println(str1==str2);  //true
            
            //intern首先常量区中没abcd,则把对象添加进去,然后返回的是字符串常量区中的abcd的引用
            String str3=new String("abcd").intern();
            //常量区中
            String str4="abcd";
            System.out.println(str3==str4);//true 
            
            //位于堆中
            String str_all=new String("good");
            //位于常量区中
            String ss="good";
            String str5="goo";
            String str6="d";
            //由于有变量的相加,则会创建新的变量,实际创建Stringbuilder进行append
            String str7=str5+str6;
            System.out.println(str7==ss);//false
            System.out.println(str7==str_all);//false
            System.out.println(str_static==str_all);//false,一个堆中,一个常量区中
            System.out.println(str_static==str_all.intern());//true,intern返回的是常量区中的引用
            System.out.println(str_static==ss);//true,static修饰与否,都位于常量区中
        }


    运行结果为:

    true
    true
    false
    false
    false
    true
    true

  • 相关阅读:
    杂谈
    分享一首歌——美丽的万物
    Silverlight有感
    风云的银光志Silverlight4.0教程之打印报表和图形(转)
    IIS 7.0的集成模式和经典模式
    WPF中MVVM模式原理分析与实践(转)
    使用HTTP_X_FORWARDED_FOR获取客户端IP的严重后果
    各大网站架构总结笔记(转)
    做了几天silverlight 小结一下
    Fiddler2介绍
  • 原文地址:https://www.cnblogs.com/Berryxiong/p/6195460.html
Copyright © 2011-2022 走看看