記錄最近遇到的兩個小問題
阿新 • • 發佈:2019-01-29
前幾天在專案中遇到的兩個小問題,說是問題,其實是非常基礎的知識。再一次暴露了基礎不紮實的漏洞
1、Long型比較大小
相信大家都清楚Long和long的區別,long是基本資料型別
,而Long是包裝型別
。
long儲存在堆疊,Long儲存在堆中;
long不是面向物件的,Long是面向物件的;
包裝型別的好處:方便涉及到物件的操作,包含了基本資料型別的相關屬性和相關操作方法。
因為Long型資料是一個物件,所以不能通過“==”的方式來比較大小。
如果使用“==”比較兩個Long型別,實際比較的是兩個物件的記憶體地址,也就是比較兩個物件是否是同一個物件。這種方法很少用到,但是如果應用巧妙也會省時省力。
比較兩個Long物件值的大小的方法有兩種:
①、boolean boolean = new Long(3).equals(new Long(3));
②、boolean boolean = (new Long(3).longValue() == new Long(3).longValue())
2、Base64和字串轉換
將String轉換為Base64:
byte[] stringToBytes = Base64.decode(string, Base64.DEFAULT);
將Base64轉換為String:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream os = new ObjectOutputStream(bos);
os.writeObject(obj);
String bytesToHexString = new String(Base64.encode(bos.toByteArray(), Base64.DEFAULT));