成人午夜一区二区_操碰在线视频_国产精品麻豆一区二区三区_中文黄色一级片_欧美日本中文字幕_高清视频91

當(dāng)前位置: 首頁(yè) / 技術(shù)干貨 / 正文
好程序員Java培訓(xùn)分享Java程序員常用的工具類(lèi)庫(kù)

2020-08-11

  好程序員Java培訓(xùn)分享Java程序員常用的工具類(lèi)庫(kù),Java世界有很多實(shí)用的工具類(lèi)框架,今天介紹3個(gè)使用頻率最高的框架。有很多實(shí)用的工具類(lèi)并沒(méi)有全部列出來(lái),只列出了最基礎(chǔ)的一部分。

  Apache CommonsApache Commons有很多子項(xiàng)目,常用的項(xiàng)目如下:

圖片1

  BeanUtils

  提供了一系列對(duì)java bean的操作,讀取和設(shè)置屬性值等。

  @Data

  public class User {

  private String username;

  private String password;

  }

  User user = new User();

  BeanUtils.setProperty(user, "username", "li");

  BeanUtils.getProperty(user, "username");

  mapbean的互相轉(zhuǎn)換:

  // bean->map

  Map<String, String> map = BeanUtils.describe(user);

  // map->bean

  BeanUtils.populate(user, map);

  我們將對(duì)象放在緩存中通常用redis中的hash,如下:

  # 設(shè)置用戶(hù)信息

  hset student name test

  hset student age 10

  這種場(chǎng)景下mapbean的互相轉(zhuǎn)換的工具類(lèi)就特別有用。

  Codec

  常見(jiàn)的編碼,解碼方法封裝:

  // Base64

  Base64.encodeBase64String(byte[] binaryData)

  Base64.decodeBase64(String base64String)

  // MD5

  DigestUtils.md5Hex(String data)

  // URL

  URLCodec.decodeUrl(byte[] bytes);

  URLCodec.encodeUrl(BitSet urlsafe, byte[] bytes);

  Collections

  交并差等操作:

  // 判空

  CollectionUtils.isEmpty(collA);

  // 交集

  CollectionUtils.retainAll(collA, collB);

  // 并集

  CollectionUtils.union(collA, collB);

  // 差集

  CollectionUtils.subtract(collA, collB);

  // 判等

  CollectionUtils.isEqualCollection(collA, collB);

  I/O

  IOUtils對(duì)IO操作的封裝

  // 拷貝流

  IOUtils.copy(InputStream input, OutputStream output);

  // 從流中讀取內(nèi)容,轉(zhuǎn)為list

  List<String> line = IOUtils.readLines(InputStream input, Charset encoding);

  FileUtils

  對(duì)文件操作類(lèi)的封裝

  File file = new File("/show/data.text");

  // 按行讀取文件

  List<String> lines = FileUtils.readLines(file, "UTF-8");

  // 將字符串寫(xiě)入文件

  FileUtils.writeStringToFile(file, "test", "UTF-8");

  // 文件復(fù)制

  FileUtils.copyFile(srcFile, destFile);

  Lang

  StringUtils 以下斷言測(cè)試通過(guò)

  // isEmpty的實(shí)現(xiàn) cs == null || cs.length() == 0; returntrue

  assertEquals(true, StringUtils.isEmpty(""));

  assertEquals(true, StringUtils.isBlank(null));

  assertEquals(true, StringUtils.isBlank(""));

  // 空格

  assertEquals(true, StringUtils.isBlank(" "));

  // 回車(chē)

  assertEquals(true, StringUtils.isBlank(" "));

  PairTriple 當(dāng)想返回2個(gè)或3個(gè)值,但這幾個(gè)值沒(méi)有相關(guān)性,沒(méi)有必要單獨(dú)封裝一個(gè)對(duì)象,就可以用到如下數(shù)據(jù)結(jié)構(gòu),返回PairTriple對(duì)象

  Pair<Integer, Integer> pair = new ImmutablePair<>(1, 2);

  // 1 2

  System.out.println(pair.getLeft() + " " + pair.getRight());

  Triple<Integer, Integer, Integer> triple = new ImmutableTriple<>(1,2,3);

  // 1 2 3

  System.out.println(triple.getLeft() + " " + triple.getMiddle() + " " + triple.getRight());

  Google Guava

  集合的創(chuàng)建

  // 普通集合的創(chuàng)建List list = Lists.newArrayList();Set set = Sets.newHashSet();// 不可變集合的創(chuàng)建ImmutableList list = ImmutableList.of("a", "b", "c");ImmutableSet set = ImmutableSet.of("a", "b");

  不可變集合是線程安全的,并且中途不可改變,因?yàn)?/font>add等方法是被聲明為過(guò)期,并且會(huì)拋出異常。

  // 普通集合的創(chuàng)建

  List<String> list = Lists.newArrayList();

  Set<String> set = Sets.newHashSet();

  // 不可變集合的創(chuàng)建

  ImmutableList<String> list = ImmutableList.of("a", "b", "c");

  ImmutableSet<String> set = ImmutableSet.of("a", "b");

  各種黑科技集合

  // use java

  Map<String, List<Integer>> map = new HashMap<String, List<Integer>>();

  // use guava

  Multimap<String, Integer> map = ArrayListMultimap.create();

  map.put("key1", 1);

  map.put("key1", 2);

  // [1, 2]

  System.out.println(map.get("key1"));

  2個(gè)鍵映射一個(gè)值

  Table<String, String, Integer> table = HashBasedTable.create();

  table.put("a", "a", 1);

  table.put("a", "b", 2);

  // 2

  System.out.println(table.get("a", "b"));

  還有很多其他各種類(lèi)型的集合,不再介紹。

  stop watch

  查看某段代碼的運(yùn)行時(shí)間

  Stopwatch stopwatch = Stopwatch.createStarted();

  // do something

  long second = stopwatch.elapsed(TimeUnit.SECONDS);

  TimeUnit 可以指定時(shí)間精度

  Joda Time

  jdk1.8之前,日期操作類(lèi)常用的只有java.util.Datejava.util.Calendar,但是這2個(gè)類(lèi)的易用性實(shí)在太差了,SimpleDateFormat不是線程安全的 。這就逼迫用戶(hù)去選擇第三方的日期操作類(lèi),Joda Time就是其中的佼佼者。

  2者的api很相似,如果公司的jdk版本在1.8以上推薦使用jdk1.8新推出的日期類(lèi),如果在1.8以下推薦使用Joda Time

好程序員公眾號(hào)

  • · 剖析行業(yè)發(fā)展趨勢(shì)
  • · 匯聚企業(yè)項(xiàng)目源碼

好程序員開(kāi)班動(dòng)態(tài)

More+
IT培訓(xùn)IT培訓(xùn)
在線咨詢(xún)
IT培訓(xùn)IT培訓(xùn)
試聽(tīng)
IT培訓(xùn)IT培訓(xùn)
入學(xué)教程
IT培訓(xùn)IT培訓(xùn)
立即報(bào)名
IT培訓(xùn)

Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號(hào)-5 京公網(wǎng)安備 11010802035720號(hào)

主站蜘蛛池模板: 热久久只有精品 | 黄色毛片视频在线观看 | 精品久久久久久久久久久久久久久久久 | 成人免费毛片片v | 看全黄大色黄大片美女爽一次 | 国产日本在线视频 | 久久久蜜桃 | 欧美视频日韩 | 午夜激情在线播放 | 国产精品精品久久久久久 | 91免费看片网站 | 91精品国产亚洲 | 国产精品久久久久久久一区二区 | 午夜精品av| 国产一区二区三区在线 | 日韩高清一区 | 国产精品99久久久久久www | 亚洲精品亚洲人成人网 | 亚洲精品成人 | 亚洲一区二区日本 | 日韩综合| 中文字幕一区二区三区在线播放 | 欧洲久久 | 成人福利网站在线观看 | 日韩在线一区二区 | 一区二区三区四区国产精品 | 欧美激情精品久久久久久久久久 | 在线观看毛片视频 | 午夜毛片免费看20次 | 亚洲另类欧美日韩 | 一区二区三区在线电影 | 在线免费观看亚洲 | 黄色av网站在线免费观看 | 欧美日韩一区二区三区不卡视频 | 日韩av线 | 中文字幕乱码日本亚洲一区二区 | 欧美日韩一二三区 | 一区两区小视频 | 久久三级视频 | 日本免费在线观看 | 成人免费大片黄在线播放 |