String和StringBuffer型別資料進行引數傳遞問題
String和StringBuffer型別資料進行引數傳遞問題
1.String和StringBuffer做為形參傳遞
通常引數傳遞有兩種:
基本型別:不會影響實際引數的值
引用型別:會影響實際引數的值
而String和StringBuffer作為引用型別是否是上面的一樣的呢?首先看一下下面的例子
- package xfcy_01;
- /**
- * 案例: String和StringBuffer做為形參傳遞
- * 形式引數:
- * 基本型別:不會影響實際引數的值
- * 引用型別:會影響實際引數的值
- * 注意:String型別資料應該按照基本資料處理
- * @author 曉風殘月
- *
- */
- public class StringBufferDemo04 {
- public static void main(String[] args) {
- //1.String型別
- String str1="hello";
- String str2="world";
- System.out.println(str1+"----------------"+str2);
- change(str1,str2);
- System.out.println(str1+"----------------"+str2);
- //2.StringBuffer型別
- StringBuffer sb1=new StringBuffer("hello");
- StringBuffer sb2=new StringBuffer("world");
- System.out.println(sb1+"-----------------"+sb2);
- change2(sb1,sb2);
- System.out.println(sb1+"-----------------"+sb2);
- }
- private static void change2(StringBuffer sb1, StringBuffer sb2) {
- sb1=sb2;
- sb2=sb1.append(sb2);
- }
- public static void change(String str1, String str2) {
- str1=str2;
- str2=str1+str2;
- }
- }
得到的結果為:
講解過分析如下:
但若為StringBuffer型別的資料
2.總結
在引用型別中應該注意String型別的資料是一種特殊情況,不會因為形參改變從而改變實參
相關文章
- String型別函式傳遞問題型別函式
- pytest的資料驅動和引數傳遞
- 二維陣列作為引數傳遞問題陣列
- String、StringBuffer、StringBuilder區別?UI
- String,StringBuffer,StringBuilder區別UI
- String、StringBuilder和StringBufferUI
- 引數的定義和引數的傳遞
- 引數傳遞
- C#程式設計引用型別和值型別 以及引用傳遞和值傳遞C#程式設計型別
- String,StringBuilder,StringBuffer的區別UI
- String、StringBuffer、StringBuilder的區別UI
- String、StringBuilder、StringBuffer的區別UI
- String StringBuild StringBuffer的區別UI
- Hellow C# unity學習記錄(7)值型別引用型別以及引數傳遞C#Unity型別
- 【Java】String、StringBuilder和StringBufferJavaUI
- Mybatis引數傳遞MyBatis
- 帶你掌握Redis資料型別:string和HashRedis資料型別
- String和基本資料型別的相互轉換資料型別
- 面試官問:Go 中的引數傳遞是值傳遞還是引用傳遞?面試Go
- Android- String、StringBuffer、StringBuilder區別AndroidUI
- String,StringBuffer與StringBuilder的區別UI
- 將函式作為引數傳遞解決非同步問題函式非同步
- C# string、stringBuffer和stringBuilderC#UI
- String、StringBuffer和StringBuilder類的UI
- 關於 Go 中 Map 型別和 Slice 型別的傳遞Go型別
- React事件傳遞引數React事件
- 路由元件傳遞引數路由元件
- PHP基礎-資料型別-string和int比較PHP資料型別
- 2、Redis的資料型別-stringRedis資料型別
- PHP基礎-資料型別-stringPHP資料型別
- JS的方法引數傳遞(按值傳遞)JS
- html、php和js值的傳遞(使用ajax進行傳遞)HTMLPHPJS
- c++ 執行緒函式傳遞資料 物件和變數C++執行緒函式物件變數
- C語言函式傳遞指標引數的問題詳解C語言函式指標
- scala:函式作為值或引數進行傳遞、作為返回值進行返回函式
- 通過行為引數化傳遞程式碼
- 一道面試題引發的js資料型別傳參思考面試題JS資料型別
- Jmeter將token設定為全域性變數並跨執行緒進行傳遞引數JMeter變數執行緒