string ,byte之間的轉換
string—>byte:
byte b;
string str=new string(b);
byte -->string:
string str="";
byte b=str.getbyte();
string 與inputstream之間的轉換
string —>inputstream
string str="";
inputstream in=new bytearrayinputstream(str.getbyte());
inputstream—>string
public string inputstream2string (inputstream in) throws ioexception
return out.tostring(); }
方法二:
public static string inputstream2string(inputstream is) throws ioexception
return baos.tostring(); }
byte與inputstream之間的轉換
byte -->inputstream
inputstream sbs = new bytearrayinputstream(byte buf);
inputstream --->byte
public
static
final
byteinput2byte(inputstream instream)
throwsioexception
bytein2b = swapstream.tobytearray();
returnin2b;
}"=="和「equals」的區別
string a="abc" ;
string c=「abc";
string b=new string ("abc");
"=="和「equals」都可以用於值得比較,但是在應用於字串的比較的時候,「==」比較的是兩個物件的引用,上面a的值是abc,b的值也是abc,但是==返回的是false;因為b是乙個新生成的乙個物件;而c==a返回true,因為在string物件池中已經存在乙個字串abc,這時候jvm就會在棧中去找有沒有乙個值一樣的物件,如果有只是從棧中將資料拿出來即可,並沒有生成乙個新的物件。當在 棧中找不到賦值給它的值得時候才會建立乙個物件。
stringbuffer 和stringbuilder的區別
兩者都可以用來動態的擴充字串,避免不必要的string物件的生成,例如string abcd=a+b+c+d ;這個字串生成了兩個不必要的字串物件 ab和abc,所以使用上述兩個可以避免此現象,但是stringbuffer是執行緒不安全的,而stringbuilder是執行緒安全的。
string 字串為null的問題
string str="";
boolean flag=false;
if(str!=null)
結果為true;
str是乙個空的字串,但是在判斷str!=null的時候返回的是true ,此時str是乙個空的字串,已經通過new生成了乙個空的字串物件,但是null還沒有生成乙個字串物件,未指向任何記憶體空間,null和「」是不等價的。"".length() 為0,但是並不等於null。
鏈結那些事兒
鏈結,就是將不同部分的 和資料收集和組合成為乙個單一檔案的過程,這個檔案可被載入到儲存器中執行。鏈結可以執行於編譯時 compile time 也就是源 被翻譯成機器 時 eg.普通的鏈結器鏈結,以及靜態鏈結庫,由靜態鏈結器鏈結 也可以執行於載入時 例如動態鏈結庫的載入時鏈結 也可以執行於執行時 r...
指標那些事兒
1.野指標 也叫懸擺指標,迷失指標 野指標是導致bug的罪魁禍首之一。對指標呼叫delete後 釋放掉了它指向的記憶體,野指標還是指向原來的位址 如果沒有重新賦值就使用它,將導致難以預料的後果。因為此時操作野指標,它指向的記憶體位址可能已經分配給其他變數在使用了。所以指標在delete之後,如果不再...
遞迴那些事兒
include include include include 求階乘 int fac int n if n 1 求累加 int add int n 求字串長度 int my strlen const char dest int main 遞迴注意事項 遞迴雖然經典,但是也有他的缺點 第一 遞迴是反...