zoukankan      html  css  js  c++  java
  • 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.表达式右边如果存在字符串引用,也就是字符串对象的句柄,那么就存放在堆里面。

  • 相关阅读:
    spring
    redis
    CentOS 6 安装教程(转载)
    Ajax&JSON
    课时2:RequestMapping映射及个属性
    课时1:SpringMVC环境搭建及第一个程序
    课时2:Spring整合MyBatis的几种方式 前面一个课时已经讲了一种思路了
    课时1:Spring整合MyBatis思路
    课时14:Bean的生命周期,通过import引入分散的spring文件
    课时13:作用域
  • 原文地址:https://www.cnblogs.com/luizw/p/10641256.html
Copyright © 2011-2022 走看看