首页 > 其他分享 >String和StringBuffer作为参数传递的区别

String和StringBuffer作为参数传递的区别

时间:2024-08-08 19:39:28浏览次数:7  
标签:sb2 sb1 String StringBuffer 参数传递 方法

String和StringBuffer作为参数传递,相同的是都重写了父类Object的toString方法,所以展示出来的不是地址值,而是对象内容

以下是两者的不同:
一、String作为参数传递:因为没有new,所以内容只在方法区,有相同的字符就会指向常量池中同一个地址值,没有就会创建一个新的,
但是方法调用的时候,只在方法里发生变化,因为方法是在栈里面运行的,所以方法结束,就自动消失,不会对原来的内容发生永久改变,
sb1不变,sb2也不变!,所以外面的System.out.pringtln(),不会受到调用方法的影响

二、StringBuffer当作参数:因为new,在堆里面开辟一块内存空间,当调用方法时,sb2.append(sb1)改变的内容会被保留下来,
而sb1=sb2,这个赋值方法只是运行在栈里面,将sb2的地址值赋值给sb1,并没有直接改变了sb1所指的地址值内容,所以只有sb2在堆里面的内容发生了永久改变,
(总结:谁调用方法谁改变),所以在该方法fun1()后面的System.out.pringtln(sb1,sb2)中,sb1不变,只有sb2发生改变!

标签:sb2,sb1,String,StringBuffer,参数传递,方法
From: https://www.cnblogs.com/k8409/p/18349588

相关文章

  • from type [java.lang.String] to type [org. apache.kafka.clients.consumer.Consume
    kafka消费消息的时候,报错Noconverterfoundcapableofconvertingfromtype[java.lang.String]totype[org.apache.kafka.clients.consumer.ConsumerRecord<??>,没有消费到数据,这种情况可能是发送方发送的数据是封装了多个ConsumerRecord<??>对象发送过来的,需要用Consume......
  • toString()方法 day10
    /*Object类学习:是java中所有的共同的父类,包括数组1、Object类是属于java.lang包下的,将来使用的时候不需要导包2、构造方法只有一个无参的构造方法3、方法都不是静态的,以为着要有对象才可以调用成员方法:publicinthashCode()......
  • 面向对象程序设计(C++)之 String 类
    1.String构造函数String可以理解为一个字符数组,在创建String类型变量的时候可以使用很多形式,因为String有很多实用的构造函数首先使用String类要包含头文件#include<string>接下来使用代码依次演示上述构造函数的用法: #include<iostream>#include<string>......
  • C++ STL与string类
    一什么是STL?STL,全称是标准模板库(StandardTemplateLibrary),是C++标准库的一部分。STL提供了一些常用的数据结构和算法,帮助开发者更方便、高效地编写代码。通过使用STL,开发者不需要重复造轮子,可以直接使用已经优化好的组件,提高了代码的可读性和可维护性。二STL的六大组件1.......
  • CF305E Playing with String
    难点在于读题发现\(l\)总取\(1\)即可,然后稍加转换就变成个傻逼题了有个显而易见的\(O(n^3)\)的区间DP做法,即考虑记录每个区间的SG函数值,然后枚举分界点转移但仔细思考我们会发现能进行操作的只有初始时\(s_{i-1}=s_{i+1}\)的位置,并不会经过某些操作后使得一个本来不......
  • 【C++】string类
    ......
  • es6-string-html vscode插件 js里面template的高亮插件 无构建vue使用
    es6-string-htmlvscode插件js里面template的高亮插件无构建vue使用这个插件可以让js里面的template的字符串高亮,前面加/*html*/Refference:无构建和打包,浏览器直接吃上Vue全家桶?https://juejin.cn/post/7399094428343959552......
  • JAVA基础:String的常用方法
    目录前言string的常用方法前言上一篇我们学习了string字符串的基本用法,以及string字符串的内部机制,而string也是一个类,他的内部也有很多已经给我们封装好的,方便我们操作字符串的方法,我们是不可能将内部的方法全部记住的,我们只要知道方法是怎么使用的有什么样的效果就行,......
  • 常用API_1:应用程序编程接口:String
    文章目录包packageString注意==和equals()String的对象是不可变的对象双引号""方式写出的字符串对象常用方法使用String来开发验证码代码运行结果反思包package同一个包下的程序可以直接访问访问其他包下的程序必须导包才能访问Java.lang包可以不用导,直接使用eg......
  • C++学习笔记----Strings与String View(4)-- 字符串操作
        今天讲点简单易懂的,字符串操作,当然了,不是全部,列出几个典型的字符串操作,完整地可以参考相关资料,网上一搜一把哦。substr(pos,len):返回特定位置pos,特定长度的子字符串。find(str):返回字符串的位置,如未找到则返回string::npos。replace(pos,len,str):用新的字符串str......