接上一篇
五、对象工具类:
/* * 对象工具类 */ 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")); }
每篇一句 大魔王張怡寧:女兒,這堆金牌你拿去玩吧,但我的銀牌不能給你玩。你要想玩銀牌就去找你王浩叔叔吧,他那銀牌多 前言 爲了講述好Spring MVC最爲複雜的數據綁定這塊,我前面可謂是做足了功課,對此部分知識此處給小夥伴留一個學
本文主要講述ClickHouse中的數據存儲結構,包括文件組織結構和索引結構,以及建立在其基礎上的數據過濾機制,從Part裁剪到Mark裁剪,最後到基於SIMD的行過濾機制。 數據過濾機制實質上是構建在數據存儲格式之上的算法,所以在介紹過濾
var obj = {} var texts = 'hello' let ipt = document.querySelector('#input') let txt = document.querySelector(
前端面試題 - vue的雙向綁定原理是什麼? vue2的雙向數據綁定是通過數據劫持結合發佈者訂閱者模式的方式來實現。 通過object.defineProperty來劫持各個屬性的setter,getter,在數據變化時發佈消息給訂閱者,
原方法 /** * 動態更新form * @param form */ updateForm(form) { this.form.manholeId = form.manholeId; this.form
這個其實是一個特別高頻的面試題,松哥也一直很想和大家仔細來聊一聊這個話題,網上關於這塊的文章很多,但是我一直覺得要把這個問題講清楚還有點難度,今天我來試一試,看能不能和小夥伴們把這個問題梳理清楚,當然,如果小夥伴們覺得看文章不過癮,松哥也有
分享8個開箱即用的API,方便日常處理集合。 1. 快速過濾空值:Stream.ofNullable 該方法是在 Java 9 中引入的,有助於過濾集合中的所有空值,從而可能使我們避免空指針異常。 在下面的示例中,有一個包含 null 的L
一、背景 在日常部門OpsReview過程中,部門內多次遇到應用容器所在的宿主機磁盤繁忙導致的接口響應緩慢,TP99增高等影響服務性能的問題,其中比較有效的解決方案是開啓日誌的異步打印,可以有效避免同步日誌打印在磁盤IO高起的情況下拖慢業
本文分享自華爲雲社區《【MySQL技術專欄】MySQL8.0直方圖介紹》,作者:GaussDB 數據庫。 背景 數據庫查詢優化器負責將SQL查詢轉換爲儘可能高效的執行計劃,但因爲數據環境不斷變化導致優化器對查詢數據瞭解的不夠充足,可能無法
作者:vivo 互聯網數據庫團隊- Qiu Xinbo 本文主要通過圖示介紹了用主鍵進行分片查詢的過程,介紹了主鍵分頁查詢存在SQL性能問題,如何去創建高效的索引去優化主鍵分頁查詢的SQL性能問題 對於數據分佈不均
JSON簡介: JSON(Java Script Object Notation)是一種輕量級的數據交換格式,通常用於在不同系統之間傳輸數據。它基於 JavaScript 對象語法,但已成爲一種獨立於語言的格式。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 。下面簡要說明各種格式的使用、限制和一些注意事項。 不同的文件格式有着不同的適用場