• String


    运行

    package com.zw.util;

    import com.zw.domain.Role;
    import com.zw.domain.Shop;

    import java.util.HashSet;
    import java.util.Set;

    /**
    * @author liuzw
    * @email liuzw1@hua-cloud.com.cn
    * @date 2019/3/23 17:09
    */
    public class Test {

    public static void main(String [] args){
    String s1 = "wangwu";
    String s2 = "wangwu";
    String s3 = "wang"+"wu";
    String s4 = "wang";
    String s5 = "wu";
    String s6 = s4+s5;
    String s7 = "wang".concat("wu");
    String s8 = s4.concat(s5);
    // s3 = s1;
    // s1 = "lisi";

    System.out.println(s2 == s6);
    System.out.println(s2 == s6.intern()); //s4+s5是引用相加放在堆里 intern()如果常量池中已经存在该字符串,则直接返回常量池中该对象的引用,比从堆中拿快,提高效率
    System.out.println(s2 == s7);
    System.out.println(s3 == s7);
    System.out.println(s6 == s8);
    System.out.println(s1==s2);
    System.out.println(s1==s3);
    System.out.println(s2==s3);
    }
    }


    String存放位置

    1.直接定义字符串变量的时候赋值,如果表达式右边只有字符串常量,那么就是把变量存放在常量池里面。

        2.new出来的字符串是存放在堆里面。

        3.对字符串进行拼接操作,也就是做"+"运算的时候,分2中情况:

          i.表达式右边是纯字符串常量,那么存放在栈里面。

          ii.表达式右边如果存在字符串引用,也就是字符串对象的句柄,那么就存放在堆里面。

  • 相关阅读:
    POJ2778 DNA Sequence AC自动机+矩阵二分
    POJ1204 Word Puzzles AC自动机 多串匹配
    与失散已久的小学同桌QQ聊天
    ZC公司员工评分系统——后台查询合成DataTable
    软考(2)编译原理
    GCT考试复习
    为自己加油!!!
    ZC公司员工评分系统——前台排版算法
    员工评分系统现场发布小感
    软考(3)操作系统
  • 原文地址:https://www.cnblogs.com/luizw/p/10641256.html
Copyright © 2020-2023  润新知