怎樣宣告才能是stringbuilder字串能在每個函式中都能引用? 5

2025-01-11 19:15:08 字數 3521 閱讀 9791

1樓:網友

宣告為全域性變數(外部變數),即變數寫在函式外.如:/main類。

public class test

public static void main(string args)

test2 te = new test2();

test2 類。

public class test2

public int a = 0;//定義為全域性變數的apublic test2()

public void chan()

a++;"chan a=" a);

public void chan2()

a++;"chan2 a=" a);

上例中的chan() 和 chan2() 都能呼叫a變數;

但任何乙個函式都可能修改其值,若要它始終不變,則定義為常量,即在變數型別前加fianl關鍵字如上例中的。

public int a = 0;

改為:public fianl int a = 0;

2樓:網友

你可以把它定義為類變數啊,這樣在類中的方法就都能使用了 .

c語言中string和stringbuilder間的區別

3樓:匿名使用者

1. 構造字串。

在c#中, 不能使用new 操作符從乙個文字常量字串構造乙個string 物件,因為string 類中沒有提供接受字串的引數的建構函式。

str = " hello world"; // 對的。

str2 = new string("hello");//錯誤。

這時候通過ldstr(load string)指令來建立乙個string 物件的, 而不是用newobj建立物件例項的。

2. string 物件是不可變的, 具體指字串一旦建立了, 就不能更改、不能變長或變短。 主要是因為 string 中的索引器是隻讀的, 因為string是不可變的,這就使得在操作或訪問乙個字串時不會發生執行緒同步問題。

string類中索引器定義:

char this [int index]

有些朋友對於string 不可變 有一些誤解, 可能因為下面的例子:

str = " hello world";

hello";

/ 輸出 hello

有些朋友可能認為string物件str被修改了, 其實並不是這樣的,string物件str已經重新指向了乙個新的字串常量:「hello」, 而不是在原來字串上修改, 這時候因為"hello world"因為沒有引用了,所以會認為是垃圾,會被垃圾**。

string 字串中還有乙個 字串留用(string interning)技術, 在這裡我就不介紹了。

3. 而stringbuilder是可變的, 可利用它高效地對字串和字元進行動態處理。可以通過append和insert方法等方法來更改字元陣列的內容,而不會造成在託管堆上分配新物件。

j**a中關於stringbuilder問題

4樓:匿名使用者

stringbuilder和string都慶裂芹是源讓final class

string 物件稱為不可變的(唯讀),因為一旦建立了該物件,就不能修改該物件的值。看來似乎修改了 string 物件的方法實際上是返回乙個包含修改內容的新 string 物件。

stringbuilder為可變字元序列的類似字串的物件。之所以說值是可變的,是因為在通過追加、移除、替換或插入譽畢字元而建立它後可以對它進行修改。

對s1追加s2所以能改變字元序列。

s1=s2;只能作用在當前方法中。

j**a關於stringbuilder的問題

5樓:烏微月

stringbuilder 是乙個類啊,equals方法是true還是false,要看equals的 實現。

string重寫了equals方法,是比較字串的內容。

stringbuilder的不是啊。stringbuilder沒有重寫object的equals,所以比較的位址。

你new了2個stringbuilder,所以就false了。

6樓:神機天下

stringbuilder 和stringbuffer 一樣,都是類似於快取的東西。

主要用於字元和字串的拼接。

但是一般拼接完成之後要用tostring()方法將他們轉換成string

在使用。而不是直接使用。

所以你上面的類裡面用stringbuilder並沒有任何好處。

比較的方法應該為。

這樣就好了。

為什麼在j**a中,string和stringbuilder同樣屬於類。

7樓:匿名使用者

stringbuffer是可變類,和執行緒安全的字串操作類,任何對它指向的字串的操作都不會產生新的物件。每個stringbuffer物件都有一定的緩衝區容量,當字串大小沒有超過容量時,不會分配新的容量,當字串大小超過容量時,會自動增加容量。stringbufferbuf=newstringbuffer();//分配長16位元組的字元緩衝區stringbufferbuf=newstringbuffer(512);//分配長512位元組的字元緩衝區stringbufferbuf=newstringbuffer("thisisatest")//在緩衝區中存放了字串,並在後面預留了16位元組的空緩衝區。

注意,是16位元組的字元緩衝區,不是長度,length是取出字串的長度,建立該物件時,沒有字串,自然長度就是0了。

8樓:逝水流炎

如果我說是因為string太常用所以特別優化的會不會太敷衍?

j**a 中stringbuilder類的方法

9樓:匿名使用者

stringbuilder是乙個字元緩衝的類。和stringbuffer是一樣的。但是stringbuilder是執行緒安全的。

10樓:網友

例如:在下面的示例**中,建立了 stringbuilder 物件,用來儲存字串,並對其做了追加和插入操作。這些操作修改了 str 物件的值,而沒有建立新的物件,這就是 stringbuilder 和 string 最大的區別。

執行結果:

stringbuilder的append方法和string+string的區別

11樓:網友

str +=a"; 你要分解來看:

str = str + a";

而str + a" 會建立乙個新的string物件,就慢了。你要知道string物件一旦建立就是不能被改變的,要達到字串拼接的效果,就得不停建立新物件。

stringbuilder直到最後才會建立string物件,之前都沒有建立新物件(在你的例子中是的,但是如果你append的總長度超過一定範圍——預設是16——就會建立乙個新的陣列,來裝下更多的string)

求助法律免責宣告,怎樣才能免責,免責宣告有法律效力嗎?

大體寫法可分這幾條 1.前提 有警告牌,這就說明你已經向他們提出預警表示會有危險!2.和他們家人多次協商沒有產生任何效果,這就說明你已經盡到了你應盡的責任!3.如果真的出事,在道德良心上做出一點賠償時可以的!換句話 負小部分責任 4.如果對方堅持讓你負責,你只能向法院提起訴訟了。首先要做好足夠的防護...

怎樣才能不在乎女友不是處,先宣告,我不是在乎那層膜

不是不在乎,而是去選擇理解,和釋懷。選擇再心裡遺忘它,不去想了。愛的不夠,要不就分,不要勉強。女朋友不是處你介意嘛 如果是我很愛的我會表面不介意,內心介意。如果是只想性那就不是處好點。如果你是處你有資格介意 如果你不是你有什麼資格介意?不介意。因為我也不是處啦。如果你女朋友不是處,你會在意嗎 會,其...

起訴狀內容與事實不符我怎樣向法院宣告

蒐集對方與事實不符的證據,積極應訴答辯。根據 中華人民共和國民事訴訟法 第一百二十五條規定。人民法院應當在立案之日起五日內將起訴狀副本傳送被告,被告應當在收到之日起十五日內提出答辯狀。答辯狀應當記明被告的姓名 性別 年齡 民族 職業 工作單位 住所 法人或者其他組織的名稱 住所和法定代表人或者主要負...