zoukankan      html  css  js  c++  java
  • java String类型的比对

    //20210117
    写在前面:今天写原型模式代码的时候涉及到了浅克隆和深克隆的问题,就想起了String类型貌似和这个有些关系,故去做了个实验并在此记录下来

    • 众所周知,java中“==”运算符在比对对象类型时比对的是对象的地址,而equals()方法比对的是内容
    • 所以按道理来说我在方法里创建两个相同内容的String对象,使用“==”运算符比对的时候应该报出错误,但是实验里返回的是true,去搜了资料,发现String使用了享元模式,相同内容的对象会指向同一个地址,改变之后再创新新对象
    • 实验源代码如下:
    public static void main(String[] args) {
            String s = "ABC";
            String ss = "ABC";
            System.out.println(s == ss);
            System.out.println(s.equals(ss));
            System.out.println(s);
            System.out.println(ss);
            s = "abcd";
            System.out.println(s);
            System.out.println(ss);
            System.out.println(s == ss);
            System.out.println(s.equals(ss));
        }
    
    • 输出如下:

    以上
    希望对大家有所帮助

  • 相关阅读:
    org.apache.jasper.JasperException
    泛型接口
    Mysql学习
    深入分析ClassLoader
    空格哥的第一篇Blog
    [Maven] Missing artifact
    sftp新建用户步骤
    遍历map的6种方式
    利用aop插入异常日志的2种方式
    Mybatis-Oralce批量插入方法
  • 原文地址:https://www.cnblogs.com/lavender-pansy/p/14288441.html
Copyright © 2011-2022 走看看