前幾天在專案中遇到的兩個小問題,說是問題,其實是非常基礎的知識。再一次暴露了基礎不紮實的漏洞

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));