接上一篇
五、對象工具類:
/* * 對象工具類 */ public void objectUtilsDemo() { System.out.println("**ObjectUtilsDemo**"); System.out.println("Object爲null時,默認打印某字符."); Object obj = null; System.out.println(ObjectUtils.defaultIfNull(obj, "空")); System.out.println("驗證兩個引用是否指向的Object是否相等,取決於Object的equals()方法."); Object a = new Object(); Object b = a; Object c = new Object(); System.out.println(ObjectUtils.equals(a, b)); System.out.println(ObjectUtils.equals(a, c)); System.out.println("用父類Object的toString()方法返回對象信息."); Date date = new Date(); System.out.println(ObjectUtils.identityToString(date)); System.out.println(date); System.out.println("返回類本身的toString()方法結果,對象爲null時,返回0長度字符串."); System.out.println(ObjectUtils.toString(date)); System.out.println(ObjectUtils.toString(null)); System.out.println(date); }
六、序列化工具類:
/* * 序列化工具類 */ public void serializationUtilsDemo() { System.out.println("*SerializationUtils**"); Date date = new Date(); //序列化成一個字節數組 byte[] bytes = SerializationUtils.serialize(date); System.out.println(ArrayUtils.toString(bytes)); System.out.println(date); //反序列化成對象 Date reDate = (Date) SerializationUtils.deserialize(bytes); System.out.println(reDate); //值相等 System.out.println(ObjectUtils.equals(date, reDate)); //但不是同一個對象 System.out.println(date == reDate); FileOutputStream fos = null; FileInputStream fis = null; try { fos = new FileOutputStream(new File("d:/test.txt")); fis = new FileInputStream(new File("d:/test.txt")); //將對象序列化後寫到文件中 SerializationUtils.serialize(date, fos); //從文件中讀出對象 Date reDate2 = (Date) SerializationUtils.deserialize(fis); System.out.println(date.equals(reDate2)); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { try { fos.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
七、隨機字符串類
/* * 隨機字符串類 */ public void randomStringUtilsDemo() { System.out.println("**RandomStringUtilsDemo**"); System.out.println("生成指定長度的隨機字符串"); System.out.println(RandomStringUtils.random(500)); System.out.println("在指定字符串中生成長度爲n的隨機字符串."); System.out.println(RandomStringUtils.random(5, "abcdefghijk")); System.out.println("指定從字符或數字中生成隨機字符串(驗證碼可以用)."); System.out.println(RandomStringUtils.random(5, true, false)); System.out.println(RandomStringUtils.random(5, false, true)); System.out.println(RandomStringUtils.random(5, true, true)); }
八、類工具類
/* * 類工具類 */ public void classUtilsDemo() { System.out.println(genHeader("ClassUtilsDemo")); System.out.println("獲取類實現的所有接口."); System.out.println(ClassUtils.getAllInterfaces(Date.class)); System.out.println("獲取類所有父類."); System.out.println(ClassUtils.getAllSuperclasses(Date.class)); System.out.println("獲取簡單類名."); System.out.println(ClassUtils.getShortClassName(Date.class)); System.out.println("獲取包名."); System.out.println(ClassUtils.getPackageName(Date.class)); System.out.println("判斷是否可以轉型."); System.out.println(ClassUtils.isAssignable(Date.class, Object.class)); System.out.println(ClassUtils.isAssignable(Object.class, Date.class)); }
九、數值工具
/* * 數值工具 */ public void numberUtils() { System.out.println(genHeader("NumberUtils")); System.out.println("字符串轉爲數字,不能轉的爲0"); System.out.println(NumberUtils.toInt("35")); System.out.println("從數組中選出最大值."); System.out.println(NumberUtils.max(new int[] { 1, 2, 3, 4 })); System.out.println("判斷字符串是否全是整數."); System.out.println(NumberUtils.isDigits("123.1")); System.out.println("判斷字符串是否是有效數字."); System.out.println(NumberUtils.isNumber("0123.1")); }
前端面試題 - null是原始類型,但爲什麼typeof null的結果是object? 造成這個結果的原因是null的內存地址是以000開頭,而js會將000開頭的內存地址視爲object。 通過isNull()來判斷一個值是不是null
update xxxx_table set xxdate = STR_TO_DATE(substr(name,LOCATE('全時段', name) +3, 8), '%Y%m%d') WHERE xxdate is null and
前端面試題 - vue的雙向綁定原理是什麼? vue2的雙向數據綁定是通過數據劫持結合發佈者訂閱者模式的方式來實現。 通過object.defineProperty來劫持各個屬性的setter,getter,在數據變化時發佈消息給訂閱者,
原方法 /** * 動態更新form * @param form */ updateForm(form) { this.form.manholeId = form.manholeId; this.form
前端面試題 - 賦值/淺拷貝/深拷貝的區別?如何實現一個深拷貝? 賦值是拷貝的對象指針,整個對象都是共用的。 淺拷貝是拷貝一層,對象的內容仍是共用的,Object.assign(),拓展運算符都是淺拷貝。 深拷貝是遞歸拷貝深層次,JSON
一、簡單介紹: CaffeineCache和Guava的Cache是應用廣泛的本地緩存。 在開發中,爲了達到降低依賴、提高訪問速度的目的。會使用它存儲一些維表接口的返回值和數據庫查詢結果,在有些場景下也會在分佈式緩存上再加上一層本地緩存,
作者:vivo 互聯網大前端團隊 - Ma Lian 本文主要描述了FileProvider,startAnyWhere實現,Parcel不對稱漏洞以及這三者結合產生的漏洞利用實戰,另外闡述了漏洞利用的影響和修復預防措施,這個漏洞波及了
本文分享自華爲雲社區《GaussDB SQL基本語法示例-CASE表達式》,作者:Gauss松鼠會小助手2。 一、前言 SQL是用於訪問和處理數據庫的標準計算機語言。GaussDB支持SQL標準(默認支持SQL2、SQL3和SQL4的主要
Impala目前支持Hadoop中幾種常見的文件格式 Parquet 、 ORC 、 Text 、 Avro 、 RCFile 和 SequenceFile 。下面簡要說明各種格式的使用、限制和一些注意事項。 不同的文件格式有着不同的適用場
本文分享自華爲雲社區《GaussDB SQL基礎語法示例-BOOLEAN表達式》,作者:Gauss松鼠會小助手2。 一、前言 SQL是用於訪問和處理數據庫的標準計算機語言。GaussDB支持的SQL標準(默認支持SQL2、SQL3和SQL
Map是用於保存具有映射關係的數據集合,它具有雙列存儲的特點,即一次必須添加兩個元素,即一組鍵值對<Key,Value>,其中Key的值不可重複(當Key的值重複的時候,後面插入的對象會將之前插入的具有相同的Key值的對象覆蓋掉),Valu
DHTMLX Suite UI 組件庫允許您更快地構建跨平臺、跨瀏覽器 Web 和移動應用程序。它包括一組豐富的即用式 HTML5 組件,這些組件可以輕鬆組合到單個應用程序界面中。 DHTMLX Gantt是用於跨瀏覽器和跨平臺應用程序的功
本文分享自華爲雲社區《GaussDB(DWS)向量化執行引擎詳解》,作者: yd_212508532。 前言 適用版本:【基線功能】 傳統的行執行引擎大多采用一次一元組的執行模式,這樣在執行過程中CPU大部分時間並沒有用來處理數據,更
SpringBoot如何優雅的進行參數校驗 一.爲什麼要進行參數校驗 在日常的開發過程中,我們常常需要對傳入的參數進行校驗,比如在web前後端分離項目中,參數校驗有兩個方面: 前端進行參數校驗 後端進行參數校驗 那這兩種
Set 有去重的特性,該體系集合用於存儲無序(存入和取出的順序不一定相同)元素,值不能重複。對象的相等性本質是對象hashCode值(java是依據對象的內存地址計算出的此序號)判斷的,如果想要讓兩個不同的對象視爲相等的,就必須覆蓋Obje