產生原因:
我們知道html是如這些標簽包含的格式化文本,當用瀏覽器打開時,瀏覽器內部的標簽解釋器把不同的標簽解釋為不同的含義。這時默認所有內容都是在標簽之內的,標簽本身并不是內容。如果內容中也有標簽怎么辦?這是個問題嗎?當然。當一個負責講解html是什么的頁面輸出時,html頁面中必然包含有標簽需要輸出顯示,而瀏覽器并不能智能的分清楚哪些是需要解釋哪些不需要。
解決方法:
其中一個辦法就是轉義。為了區分需要解釋和不需要解釋的<>,將不需要解釋的<>用轉義字符代替,html會將它們解釋為<>。和html一樣,其他編程語言也有一些內置特殊符號需要用這樣的方法處理,比如php中的$,下面列舉一些:
如HTML轉義符、java 轉義符、xml 轉義符、 oracle 轉義符、sql 轉義符 、sqlserver 轉義符、php 轉義符、asp 轉義符、vb轉義符、 javascript 轉義符等等,還有網址中的百分號。
轉義字符串有三部分組成:
&符號+實體名稱/編號+;符號
例如,HTML的< >&"?的轉義字符串分別是
“&lt;”或者“&#60;”
“&gt;”或者“&#62;”
“&amp;”或者“&#38;”
“&quot;”或者“&#34;”
“&copy;”或者“&#169;”
在高級編程語言中已經將轉義字符的轉義處理做成了函數。如php中的htmlspecialchars()負責將函數參數轉為對應的轉義字符串
今,Java開發者需要處理各種各樣的任務,這包括但不限于:日期操作、加密算法、文件操作、Excel數據處理、網絡請求等等。而在處理這些任務時,為了提高效率、降低開發難度和復雜度,我們需要借助一些工具類庫。Hutool是一個Java工具類庫,提供了許多常用的工具類和工具方法,使Java開發者的工作更加輕松和高效。在本文中,我們將介紹Hutool的一些特性和用法,以幫助您更好地使用Hutool。
Hutool是一個Java工具類庫,由國內的程序員loolly開發,目的是提供一些方便、快捷、實用的工具類和工具方法,使Java開發者能夠更加輕松地處理各種任務。Hutool的特點是簡單易用、功能全面、代碼清晰、文檔完備,支持JDK 1.8及以上版本。目前,Hutool已經被廣泛使用,并且已經發布了3.x版本。Hutool 3.x版本的特點是升級了依賴庫、增加了一些新的功能和優化了性能。
Hutool提供了許多常用的工具類和工具方法,涵蓋了各種任務,例如:
下面,我們將對其中的一些特性進行介紹。
Hutool提供了一些常用的字符串工具類,例如:
Hutool提供了一些常用的日期時間工具類,例如:
Hutool提供了一些常用的集合工具類,例如:
Hutool提供了一些常用的數字工具類,例如:
Hutool提供了一些常用的加密解密工具類,例如:
Hutool提供了一些常用的文件操作工具類,例如:
Hutool提供了一些常用的Excel數據處理工具類,例如:
Hutool提供了一些常用的Http請求工具類,例如:
HttpUtil:提供了對Http請求的操作,例如發送GET請求、發送POST請求、下載文件等。
總之,Hutool是一個非常實用的Java工具類庫,它提供了豐富的工具類,可以大大簡化Java開發的過程,提高開發效率。無論是初學者還是資深開發者,都可以從中受益。
據說是阿里 P8 級高級架構師吐血總結的一份 Java 核心知識.pdf, 內容覆蓋很廣,Java 核心基礎、Java 多線程、高并發、Spring、微服務、Netty 與 RPC、Zookeeper、Kafka、RabbitMQ、Habase、設計模式、負載均衡、分布式緩存、Hadoop、Spark、Storm、云計算等。
另外,附送 100G 學習、面試視頻文檔喲~
獲取方式:【關注 + 轉發】后,私信我,回復關鍵字【資源】,即可免費無套路獲取哦~
以下是資源的部分目錄以及內容截圖:
重要的事再說一遍,獲取方式:【關注 + 轉發】后,私信我,回復關鍵字【資源】,即可免費無套路獲取哦~
在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類。以下工具類、方法按使用流行度排名,參考數據來源于Github上隨機選取的5萬個開源項目源碼。
一. org.apache.commons.io.IOUtils
closeQuietly:關閉一個IO流、socket、或者selector且不拋出異常,通常放在finally塊 toString:轉換IO流、 Uri、 byte[]為String copy:IO流數據復制,從輸入流寫到輸出流中,最大支持2GB toByteArray:從輸入流、URI獲取byte[] write:把字節. 字符等寫入輸出流 toInputStream:把字符轉換為輸入流 readLines:從輸入流中讀取多行數據,返回List<String> copyLarge:同copy,支持2GB以上數據的復制 lineIterator:從輸入流返回一個迭代器,根據參數要求讀取的數據量,全部讀取,如果數據不夠,則失敗復制代碼
二. org.apache.commons.io.FileUtils
deleteDirectory:刪除文件夾 readFileToString:以字符形式讀取文件內容 deleteQueitly:刪除文件或文件夾且不會拋出異常 copyFile:復制文件 writeStringToFile:把字符寫到目標文件,如果文件不存在,則創建 forceMkdir:強制創建文件夾,如果該文件夾父級目錄不存在,則創建父級 write:把字符寫到指定文件中 listFiles:列舉某個目錄下的文件(根據過濾器) copyDirectory:復制文件夾 forceDelete:強制刪除文件復制代碼
三. org.apache.commons.lang.StringUtils
isBlank:字符串是否為空 (trim后判斷) isEmpty:字符串是否為空 (不trim并判斷) equals:字符串是否相等 join:合并數組為單一字符串,可傳分隔符 split:分割字符串 EMPTY:返回空字符串 trimToNull:trim后為空字符串則轉換為null replace:替換字符串復制代碼
四. org.apache.http.util.EntityUtils
toString:把Entity轉換為字符串 consume:確保Entity中的內容全部被消費。可以看到源碼里又一次消費了Entity的內容,假如用戶沒有消費,那調用Entity時候將會把它消費掉 toByteArray:把Entity轉換為字節流 consumeQuietly:和consume一樣,但不拋異常 getContentCharset:獲取內容的編碼復制代碼
五. org.apache.commons.lang3.StringUtils
isBlank:字符串是否為空 (trim后判斷) isEmpty:字符串是否為空 (不trim并判斷) equals:字符串是否相等 join:合并數組為單一字符串,可傳分隔符 split:分割字符串 EMPTY:返回空字符串 replace:替換字符串 capitalize:首字符大寫復制代碼
六. org.apache.commons.io.FilenameUtils
getExtension:返回文件后綴名 getBaseName:返回文件名,不包含后綴名 getName:返回文件全名 concat:按命令行風格組合文件路徑(詳見方法注釋) removeExtension:刪除后綴名 normalize:使路徑正常化 wildcardMatch:匹配通配符 seperatorToUnix:路徑分隔符改成unix系統格式的,即/ getFullPath:獲取文件路徑,不包括文件名 isExtension:檢查文件后綴名是不是傳入參數(List<String>)中的一個復制代碼
七. org.springframework.util.StringUtils
hasText:檢查字符串中是否包含文本 hasLength:檢測字符串是否長度大于0 isEmpty:檢測字符串是否為空(若傳入為對象,則判斷對象是否為null) commaDelimitedStringToArray:逗號分隔的String轉換為數組 collectionToDelimitedString:把集合轉為CSV格式字符串 replace 替換字符串 7. delimitedListToStringArray:相當于split uncapitalize:首字母小寫 collectionToDelimitedCommaString:把集合轉為CSV格式字符串 tokenizeToStringArray:和split基本一樣,但能自動去掉空白的單詞復制代碼
八. org.apache.commons.lang.ArrayUtils
contains:是否包含某字符串 addAll:添加整個數組 clone:克隆一個數組 isEmpty:是否空數組 add:向數組添加元素 subarray:截取數組 indexOf:查找某個元素的下標 isEquals:比較數組是否相等 toObject:基礎類型數據數組轉換為對應的Object數組復制代碼
九. org.apache.commons.lang.StringEscapeUtils
參考十五:org.apache.commons.lang3.StringEscapeUtils復制代碼
十. org.apache.http.client.utils.URLEncodedUtils
format:格式化參數,返回一個HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串 parse:把String或者URI等轉換為List<NameValuePair>復制代碼
十一. org.apache.commons.codec.digest.DigestUtils
md5Hex:MD5加密,返回32位字符串 sha1Hex:SHA-1加密 sha256Hex:SHA-256加密 sha512Hex:SHA-512加密 md5:MD5加密,返回16位字符串復制代碼
十二. org.apache.commons.collections.CollectionUtils
isEmpty:是否為空 select:根據條件篩選集合元素 transform:根據指定方法處理集合元素,類似List的map() filter:過濾元素,雷瑟List的filter() find:基本和select一樣 collect:和transform 差不多一樣,但是返回新數組 forAllDo:調用每個元素的指定方法 isEqualCollection:判斷兩個集合是否一致復制代碼
十三. org.apache.commons.lang3.ArrayUtils
contains:是否包含某個字符串 addAll:添加整個數組 clone:克隆一個數組 isEmpty:是否空數組 add:向數組添加元素 subarray:截取數組 indexOf:查找某個元素的下標 isEquals:比較數組是否相等 toObject:基礎類型數據數組轉換為對應的Object數組復制代碼
十四. org.apache.commons.beanutils.PropertyUtils
getProperty:獲取對象屬性值 setProperty:設置對象屬性值 getPropertyDiscriptor:獲取屬性描述器 isReadable:檢查屬性是否可訪問 copyProperties:復制屬性值,從一個對象到另一個對象 getPropertyDiscriptors:獲取所有屬性描述器 isWriteable:檢查屬性是否可寫 getPropertyType:獲取對象屬性類型復制代碼
十五. org.apache.commons.lang3.StringEscapeUtils
unescapeHtml4:轉義html escapeHtml4:反轉義html escapeXml:轉義xml unescapeXml:反轉義xml escapeJava:轉義unicode編碼 escapeEcmaScript:轉義EcmaScript字符 unescapeJava:反轉義unicode編碼 escapeJson:轉義json字符 escapeXml10:轉義Xml10復制代碼
這個現在已經廢棄了,建議使用commons-text包里面的方法。
十六. org.apache.commons.beanutils.BeanUtils
copyPeoperties:復制屬性值,從一個對象到另一個對象 getProperty:獲取對象屬性值 setProperty:設置對象屬性值 populate:根據Map給屬性復制 copyPeoperty:復制單個值,從一個對象到另一個對象 cloneBean:克隆bean實例復制代碼
現在你只要了解了以上16種最流行的工具類方法,你就不必要再自己寫工具類了,不必重復造輪子。大部分工具類方法通過其名字就能明白其用途,如果不清楚的,可以看下別人是怎么用的,或者去網上查詢其用法。
另外,工具類,根據阿里開發手冊,包名如果要使用util不能帶s,工具類命名為 XxxUtils
作者:alterem
*請認真填寫需求信息,我們會在24小時內與您取得聯系。