成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Java中常用的jar包有哪些

今天就跟大家聊聊有關(guān)Java中常用的jar包,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)瓊結(jié),十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):028-86922220

一、common-lang3

簡(jiǎn)介:一個(gè)現(xiàn)在最為常用的jar包,封裝了許多常用的工具包

依賴(lài):

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

主要常見(jiàn)的類(lèi)如下:

數(shù)組工具類(lèi) ArrayUtils

日期工具類(lèi) DateUtils DateFormatUtils

字符串工具類(lèi) StringUtils

數(shù)字工具類(lèi) NumberUtils

布爾工具類(lèi) BooleanUtils

反射相關(guān)工具類(lèi) FieldUtils、MethodUtils、MemberUtils、TypeUtils、ConstructorUtils

對(duì)象工具類(lèi) ObjectUtils

序列化工具類(lèi) SerializationUtils

API介紹

這里我只介紹經(jīng)常使用的幾個(gè)工具類(lèi)及方法,ArrayUtils,StringUtils,NumberUtils,DateUtils,其他的請(qǐng)查看官方API文檔吧

1.ArrayUtils

方法名說(shuō)明
add
remove
clone復(fù)制數(shù)組
addAll
removeAll第二個(gè)參數(shù)傳入需要?jiǎng)h除的下標(biāo)(可以指定多個(gè)下標(biāo))
toObject把數(shù)值(int[],double[])轉(zhuǎn)為包裝類(lèi)(Int[],Double[])
indexOf在數(shù)組按順序查找,找到第一個(gè)滿(mǎn)足對(duì)應(yīng)的數(shù)值的下標(biāo)
lastIndexOf在數(shù)組按順序查找,找到最后一個(gè)滿(mǎn)足對(duì)應(yīng)的數(shù)值的下標(biāo)
contains數(shù)組是否包含某個(gè)值
isEmpty判斷數(shù)組是否為空
isNotEmpty判斷數(shù)組是否不為空
reverse數(shù)組反轉(zhuǎn)
subarray指定區(qū)間截取數(shù)組,區(qū)間為半開(kāi)區(qū)間,不包含末尾
toArray接收一個(gè)多個(gè)對(duì)象,把這幾個(gè)對(duì)象轉(zhuǎn)為對(duì)應(yīng)類(lèi)型的數(shù)組
toMap將一個(gè)二維數(shù)組轉(zhuǎn)為Map

2.NumberUtils

方法名

說(shuō)明
min比較三個(gè)數(shù),返回最小值 或比較指定的幾個(gè)數(shù),返回最小值
max比較三個(gè)數(shù),返回最大值 或比較指定的幾個(gè)數(shù),返回最大值
createInt從傳入的String中創(chuàng)建對(duì)應(yīng)類(lèi)型的數(shù)值,createDouble,createFloat...
toInt將指定字符串轉(zhuǎn)為Int類(lèi)型,可以選擇指定默認(rèn)數(shù)值,如果字符串為null則返回默認(rèn)數(shù)值,除此之外,還有toDouble,toLong...等轉(zhuǎn)為不同類(lèi)型的方法
compare比較兩個(gè)同類(lèi)型數(shù)值的大小
isDigits判斷字符串是否只包含數(shù)字
isParsable判斷字符串是否可轉(zhuǎn)換為L(zhǎng)ong,Int等類(lèi)型
isNumber判斷字符串是否為數(shù)值(0x,0X開(kāi)頭等進(jìn)制數(shù)值)

3.DateUtils

方法名說(shuō)明
parseDate將Date對(duì)象轉(zhuǎn)為字符串
isSameDay判斷兩個(gè)Dated對(duì)象是否為同一天
isSameDay判斷兩個(gè)Dated對(duì)象是否為同一天
addHour將指定的Date對(duì)象加上指定小時(shí),除此之外,還有addMonth,addDay..等

DateFormatUtils正如其名,是用來(lái)把時(shí)間轉(zhuǎn)為字符串,這里就不再多說(shuō)

4.StringUtils

方法名說(shuō)明
join將指定的數(shù)組連接成字符串,并添加指定的分割字符
containOnly字符串是否只包含某個(gè)字符串
substringBefore截取指定字符串前面的內(nèi)容
substringAfter截取指定字符串后面的內(nèi)容(不包括指定字符串)
substringBetween截取字符串某區(qū)間內(nèi)容,如substringBetween("abcde","a","e")="bcd"
difference比較兩個(gè)字符串,返回兩個(gè)字符串不同的內(nèi)容,具體可以看API文檔給出的示例
isBlank判斷字符串是否為空白,null,""," "這三個(gè)結(jié)果都是為true
isEmpty判斷字符串是否為空(只要不為null,或傳入的String對(duì)象的長(zhǎng)度不為0即為true)
countMatches判斷指定的字符串在某個(gè)字符串中出現(xiàn)的次數(shù)
deleteWhitespace刪除字符串中的空格
defaultIfBlank如果字符串為空白,則返回一個(gè)指定的默認(rèn)值(null或某個(gè)String)
defaultIfEmpty如果字符串為空,則返回一個(gè)指定的默認(rèn)值(null或某個(gè)String)
capitalize將指定字符串首字母大寫(xiě)
abbreviate將指定字符串的后面三位轉(zhuǎn)為...
swapCase將字符串中的字母大小寫(xiě)反轉(zhuǎn),如aBc變?yōu)锳bC
lowerCase將字符串的字母全部轉(zhuǎn)為小寫(xiě)
upperCase將字符串的字母全部轉(zhuǎn)為大寫(xiě)
left取字符串左邊幾個(gè)字符,如left("hello",3)="hel",right與此相反
leftPad字符串的長(zhǎng)度不夠,則使用指定字符填充指定字符串,如leftPad("hel",5,"z")="zzhel",rightPad方法與此相反
prependIfMissing指定字符串不以某段字符串開(kāi)頭,則自動(dòng)添加開(kāi)頭,如prependIfMissing("hello","li")="lihello"
prependIfMissing指定字符串不以某段字符串開(kāi)頭(忽略大小寫(xiě)),則自動(dòng)添加開(kāi)頭
getCommonPrefix獲得多個(gè)字符串相同的開(kāi)頭內(nèi)容,接收參數(shù)為多個(gè)字符串
removeEnd刪除字符串中結(jié)尾(滿(mǎn)足是以某段內(nèi)容結(jié)尾),如removeEnd("hello","llo")="he"
removeEndIgnoreCase與上面一樣,忽略大小寫(xiě)
removeStart與上面的相反
remove刪除字符串中的指定內(nèi)容,如remove("hello","l")="heo"
removeIgnoreCase刪除字符串中的指定內(nèi)容,如remove("hello","l")="heo"
strip清除字符串開(kāi)頭和末尾指定的字符(第二個(gè)參數(shù)為null,用來(lái)清除字符串開(kāi)頭和末尾的空格),如strip(" abcxy","xy")=" abc",strip(" abcxy","yx")=" abc"
stripStart清除字符串開(kāi)頭指定字符
stripEnd清除字符串末尾指定的字符

二、common-io

簡(jiǎn)介:常用的IO流工具包

<!-- https://mvnrepository.com/artifact/commons-io/commons-io --><dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version></dependency>

我們主要關(guān)心的就是Utils后綴的那幾個(gè)類(lèi)即可,可以看到,common-io庫(kù)提供了FileUtils,FileSystemUtils,FileNameUtils,FileFilterUtils,IOUtils

FileUtils

● 寫(xiě)出文件

● 讀取文件

● 創(chuàng)建一個(gè)有父級(jí)文件夾的文件夾

● 復(fù)制文件和文件夾

● 刪除文件和文件夾

● URL轉(zhuǎn)文件

● 通過(guò)過(guò)濾器和擴(kuò)展名來(lái)篩選文件和文件夾

● 比較文件內(nèi)容

● 文件最后修改時(shí)間

● 文件校驗(yàn)

FileSystemUtils

關(guān)于文件系統(tǒng)的相關(guān)操作,如查看C盤(pán)的大小,剩余大小等操作

IOUtils

字面意思,是封裝了IO流的各種操作的工具類(lèi)

三、Log4j

簡(jiǎn)介:Log4J 是 Apache 的一個(gè)開(kāi)源項(xiàng)目,通過(guò)在項(xiàng)目中使用 Log4J,我們可以控制日志信息輸出到控制臺(tái)、文件、GUI 組件、甚至是數(shù)據(jù)庫(kù)中。

我們可以控制每一條日志的輸出格式,通過(guò)定義日志的輸出級(jí)別,可以更靈活的控制日志的輸出過(guò)程,方便項(xiàng)目的調(diào)試。

依賴(lài):

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

結(jié)構(gòu)

Log4J 主要由 Loggers (日志記錄器)、Appenders(輸出端)和 Layout(日志格式化器)組成。

其中Loggers 控制日志的輸出級(jí)別與日志是否輸出;

Appenders 指定日志的輸出方式(輸出到控制臺(tái)、文件等);

Layout 控制日志信息的輸出格式。

日志級(jí)別:

級(jí)別說(shuō)明
OFF最高日志級(jí)別,關(guān)閉左右日志
FATAL將會(huì)導(dǎo)致應(yīng)用程序退出的錯(cuò)誤
ERROR發(fā)生錯(cuò)誤事件,但仍不影響系統(tǒng)的繼續(xù)運(yùn)行
WARN警告,即潛在的錯(cuò)誤情形
INFO一般和在粗粒度級(jí)別上,強(qiáng)調(diào)應(yīng)用程序的運(yùn)行全程
DEBUG一般用于細(xì)粒度級(jí)別上,對(duì)調(diào)試應(yīng)用程序非常有幫助
ALL最低等級(jí),打開(kāi)所有日志記錄

我們主要使用這四個(gè):Error>Warn>Info>Debug

使用

我們可以使用兩種方式來(lái)運(yùn)行Log4j,一種是java代碼方式,另外一種則是配置文件方式

例子(Java方式)

public class Log4JTest {
    public static void main(String[] args) {   
        //獲取Logger對(duì)象的實(shí)例(傳入當(dāng)前類(lèi))         
        Logger logger = Logger.getLogger(Log4JTest.class);
        //使用默認(rèn)的配置信息,不需要寫(xiě)log4j.properties
        BasicConfigurator.configure();
        //設(shè)置日志輸出級(jí)別為WARN,這將覆蓋配置文件中設(shè)置的級(jí)別,只有日志級(jí)別低于WARN的日志才輸出
        logger.setLevel(Level.WARN);
        logger.debug("這是debug");
        logger.info("這是info");
        logger.warn("這是warn");
        logger.error("這是error");
        logger.fatal("這是fatal");
    }
}

例子(配置文件方式)

上面的例子,我們想要實(shí)現(xiàn)打印Log,但是每次都要寫(xiě)一遍,浪費(fèi)時(shí)間和精力,所以,Log4j提供了另外一種方式來(lái)配置好我們的信息

創(chuàng)建一個(gè)名為log4j.properties的文件,此文件需要放在項(xiàng)目的根目錄(約定),如果是maven項(xiàng)目,直接放在resources文件夾中即可

log4j.properties

#控制臺(tái)
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#log jdbc
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=WARN
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
#log mybatis設(shè)置
#log4j.logger.org.apache.ibatis=DEBUG
log4j.logger.org.apache.ibatis.jdbc=error
log4j.logger.org.apache.ibatis.io=info
log4j.logger.org.apache.ibatis.datasource=info
#springMVC日志
log4j.logger.org.springframework.web=WARN
# 文件輸出配置
log4j.appender.A = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A.File = D:/log.txt #指定日志的輸出路徑
log4j.appender.A.Append = true
log4j.appender.A.Threshold = DEBUG
log4j.appender.A.layout = org.apache.log4j.PatternLayout #使用自定義日志格式化器
log4j.appender.A.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n #指定日志的輸出格式
log4j.appender.A.encoding=UTF-8 #指定日志的文件編碼
#指定日志的輸出級(jí)別與輸出端
log4j.rootLogger=DEBUG,Console,A
#指定某個(gè)包名日志級(jí)別(不能超過(guò)上面定義的級(jí)別,否則日志不會(huì)輸出)
log4j.logger.com.wan=DEBUG

之后使用的話(huà)就比較簡(jiǎn)單了

//Logger的初始化(這個(gè)推薦定義為全局變量,方便使用)
Logger logger = Logger.getLogger(Log4JTest.class);
//輸出Log
logger.info("這是info");

四、lombok

簡(jiǎn)介:平常我們創(chuàng)建實(shí)體類(lèi)的時(shí)候,需要get/set方法,極其麻煩,雖然IDEA等IDE都是有提供了快捷生成,不過(guò),最好的解決方法還是省略不寫(xiě)

而lombok就是這樣的一個(gè)框架,實(shí)現(xiàn)省略get/set方法,當(dāng)然,lombok的功能不只有此,還有equal,toString方法也可以由此框架自動(dòng)生成

lombok的原理是使用注解,之后就會(huì)在編譯過(guò)程中,給Class文件自動(dòng)加上get/set等方法

不過(guò)IDEA似乎無(wú)法識(shí)別,代碼檢查還是會(huì)報(bào)錯(cuò),所以,使用IDEA的時(shí)候還得安裝一個(gè)插件,在plugin搜索lombok,之后安裝重啟即可,如圖

Java中常用的jar包有哪些

之后為Java項(xiàng)目添加依賴(lài)

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.8</version>
    <scope>provided</scope>
</dependency>

使用示例

1.實(shí)體類(lèi)省略get/set

估計(jì)Kotlin中的data關(guān)鍵字就是參照著lombok實(shí)現(xiàn)的

//這里我們只需要為類(lèi)添加Data注解,就會(huì)自動(dòng)生成對(duì)應(yīng)屬性的get/set方法,toString,equal等方法
@Data
public class User {
    private String username;
    private String password;
}

2.需要無(wú)參構(gòu)造以及get/set方法

@Getter
@Setter
@NoArgsConstructor
public class User {
    private String username;
    private String password;
}

3.鏈?zhǔn)秸{(diào)用set方法

@Data
@Accessors(chain = true)
public class User {
    private String username;
    private String password;
}
//使用
User user = new User();
user.setUsername("helo").setPassword("123");

4.參數(shù)不為空

//如果調(diào)用此方法,就會(huì)抱一個(gè)空指針錯(cuò)誤
public String print(@NotNull String str){
    ...
}

5.只需要toString

@ToString(callSuper=true, includeFieldNames=true)
public class User {
    private String username;
    private String password;
    //省略的get/set方法
}

6.builder模式創(chuàng)建實(shí)體類(lèi)對(duì)象

@Data
@Builder
public class User {
    private String username;
    private String password;
}
//使用
User user1 = User.builder().username("user1").password("123").build();

7.工具類(lèi)

@UtilityClass
public class MyUtils{
    //會(huì)將此方法自動(dòng)轉(zhuǎn)為靜態(tài)方法
    public void print(String str){
        ...
    }
}
//使用
MyUtils.print("hello");

8.自動(dòng)關(guān)閉流

public static void main(String[] args) throws Exception {
    //使用Cleanup會(huì)自動(dòng)調(diào)用close方法
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);
    byte[] b = new byte[1024];
    while (true) {
        int r = in.read(b);
        if (r == -1) break;
        out.write(b, 0, r);
    }
}

9.省略L(fǎng)ogger時(shí)的初始化

@Log4j
@Log
public class User{
    //會(huì)自動(dòng)添加此語(yǔ)句
    //Logger logger = Logger.getLogger(User.class);
    ...
}

看完上述內(nèi)容,你們對(duì)Java中常用的jar包有進(jìn)一步的了解嗎?如果還想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。

網(wǎng)頁(yè)題目:Java中常用的jar包有哪些
本文網(wǎng)址:http://jinyejixie.com/article18/pspjdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站收錄微信小程序、、云服務(wù)器網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
华阴市| 遂宁市| 遵化市| 越西县| 庆元县| 衡南县| 安陆市| 南昌市| 木兰县| 孝义市| 塘沽区| 澄江县| 越西县| 永嘉县| 旬邑县| 沙洋县| 苗栗市| 兴山县| 东台市| 洪雅县| 林西县| 禹州市| 巴林右旗| 棋牌| 宁都县| 德江县| 湟源县| 尖扎县| 邯郸市| 交城县| 固安县| 辉县市| 雷州市| 许昌市| 福安市| 瓦房店市| 揭西县| 蒙山县| 远安县| 莱州市| 金湖县|