首页 > 编程语言 >Java中String被称为不可变字符串的原因

Java中String被称为不可变字符串的原因

时间:2022-11-09 18:22:21浏览次数:43  
标签:Java String StringBuffer System str 字符串 sb out

很多东西,看似可变,实际上不过是是新桃换旧符罢了。

 

代码:

/**
     * String之所以被称为不可变字符串
     */
    static void testString(){
        String str = "i love";
        System.out.println(str+"地址是:"+System.identityHashCode(str));
        str = str+" you";
        System.out.println(str+"地址是:"+System.identityHashCode(str));

        StringBuffer sb =new StringBuffer("i love");
        System.out.println(sb+"地址是:"+System.identityHashCode(sb));
        sb.append(" you");
        System.out.println(sb+"地址是:"+System.identityHashCode(sb));
    }

运行结果:

 

 

 

对了,StringBuilder 线程不安全,StringBuffer线程安全(由于 StringBuilder 相较于 StringBuffer 有速度优势),所以建议使用 StringBuilder 类。

标签:Java,String,StringBuffer,System,str,字符串,sb,out
From: https://www.cnblogs.com/lurenjia-bky/p/16874745.html

相关文章

  • mac下java和mvn的环境配置
    原文:https://blog.csdn.net/w605283073/article/details/111770386   https://www.pudn.com/news/62f8c6905425817ffc462029.htmlmvn打包报错:Nocompilerisprov......
  • JAVA遍历Map所有元素
    //JDK1.5Mapmap=newHashMap();for(Objectobj:map.keySet()){Objectkey=obj;Objectvalue=map.get(obj);}123456//JDK1.4......
  • java 串口工具jSerialComm
    由于项目之前用的串口工具RXTX只支持到jdk1.8然后项目目前用到的jdk是13的所以在网上找了一下找到了这个 jSerialComm目前使用是支持13及1.8的没做其它jdk版本测试......
  • Java线程安全
    线程安全的本质其实第一张图的例子是有问题的,主内存中的变量是共享的,所有线程都可以访问读写,而线程工作内存又是线程私有的,线程间不可互相访问。那在多线程场景下,图上的线程......
  • Caused by: java.lang.NoClassDefFoundError: net/minidev/asm/FieldFilter 报错的解
    Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'requestMappingHandlerAdapter'definedinclasspathresourc......
  • JavaScript 清空对象的值
      functionclearObj(obj){//判断是不是对象if(!Object.prototype.toString.call(obj)=="[objectObject]"){returnfalse;}for(constkey......
  • javascript基础知识之多维数组扁平化去重排序
    vararr=[1,2,3,4,5,[1,2,6,8]]=>[1,2,3,4,5,6,8]vararr=[1,2,3,4,5,[1,2,6,8]]//js方法实现varflatArr=arr.toString().split(",")//扁平functionun......
  • 2022 年你需要掌握的 7 种关于 JavaScript 的数组方法(下)
    4.Array.forEach()现在这是一个经典。那个 forEach() 方法的工作原理很像常规 for 循环。它在数组上循环并对每个项目执行一个函数。 .forEach() 的第一个参数是......
  • javascript基础知识之闭包和递归
    一,什么是闭包,会出现什么问题?如何避免?1、函数里面包含的子函数,子函数访问父函数的局部变量2、通过return将子函数暴露在全局作用域,子函数就形成闭包3、通过闭包,父函数的局......
  • Kafka Java客户端Stream API
    KafkaStream概念及初识高层架构图KafkaStream是ApacheKafka从0.10版本引入的一个新Feature,它提供了对存储于Kafka内的数据进行流式处理和分析的功能。简而言之,KafkaStre......