A. java的常用的類庫有哪些
一、日誌相關類庫
日誌庫是很常見的,因為你在每一個項目中都需要他們。列印日誌是伺服器端應用中最重要的事情,因為日誌是你了解你的程序發生了什麼的唯一途徑。盡管JDK附帶自己的日誌庫,但是還是有很多更好的選擇可用,例如 Log4j 、 SLF4j 和 LogBack。
Java開發人員應該熟悉日誌記錄的利弊, 並且了解為什麼SLF4J要比Log4J要好。
二、jsON解析庫
在當今世界的web服務和物聯網中(IoT),JSON已經取代了XML,成為從客戶端到伺服器傳送信息的首選協議。有一個好消息和一個壞消息。壞消息 是JDK沒有提供JSON庫。好消息是有許多優秀的第三方庫可以用來解析和創建JSON消息,如 Jackson 和 Gson
一個Java web開發人員應該熟悉Jackson 和 Gson這兩種中的至少一種庫。
三、單元測試庫
單元測試技術的使用,是區分一個一般的開發者和好的開發者的重要指標。程序員經常有各種借口不寫單元測試,但最常見的借口就是缺乏經驗和知識。常見的單測框架有 JUnit , Mockito 和PowerMock 。
《2020最新Java基礎精講視頻教程和學習路線!》
四、通用類庫
有幾個很好的第三方通用庫可供Java開發人員使用,例如 Apache Commons 和 Google Guava 。我會經常在我的代碼中使用這些通用類庫,因為這些類庫都是經過無數開發者實踐過的,無論是實用性還是在性能等方面都是最佳的。
五、Http 庫
我不是很喜歡JDK的一個重要原因就包括他們缺乏對HTTP的支持。雖然可以使用java.net包類,但是這和直接使用像 Apache HttpClient 和 HttpCore 等開源類庫比起來麻煩太多了。
盡管JDK 9將開始HTTP 2.0,也對HTTP的支持做了優化,但是我還是強烈建議所有的Java開發人員熟悉流行的HTTP處理類庫,例如HttpClient和HttpCore HTTP等庫。
六、XML解析庫
市面上有很多XML解析的類庫,如 Xerces , JAXB , JAXP , Dom4j , Xstream 等。 Xerces2是下一代高性能,完全兼容的XML解析工具。Xerces2定義了 Xerces Native Interface (XNI)規范,並提供了一個完整、兼容標準的 XNI 規范實現。該解析器是完全重新設計和實現的,更簡單以及模塊化。
七、Excel讀寫庫
許多應用程序需要提供把數據導出到Excel的功能,如果你要做相同的Java應用程序,那麼你需要 Apache POI API 。
這是一個非常豐富的類庫,你可以從Java程序讀寫XLS文件。
八、位元組碼庫
如果你正在編寫一個框架或者類庫。有一些受歡迎的位元組碼庫如 javassist 和 Cglib Nodep 可以供你選擇,他們可以讓你閱讀和修改應用程序生成的位元組碼。
Javassist使得JAVA位元組碼操作非常簡單。它是一個為編輯Java位元組碼而生的類庫。 ASM 是另一個有用的位元組碼編輯庫。
九、資料庫連接池庫
如果你的Java應用程序與資料庫交互不是使用資料庫連接池庫的話,那麼你就大錯特錯了。因為在運行時創建資料庫連接非常耗時並且會拖慢你的程序。所以牆裂建議使用,有些好用的連接池可供選擇,如 Commons Pool 和 DBCP 。
在web應用程序中,web伺服器通常提供了這些功能。但是在java項目中需要把資料庫連接池的類庫導入到應用中。
十、消息傳遞庫
像日誌和資料庫連接池一樣,消息傳遞也是很多實際的Java項目中必備的。Java提供了JMS Java消息服務,但這不是JDK的一部分,你需要單獨的引入jms.jar。類似地,如果您准備使用第三方消息傳遞協議, Tibco RV 是個不錯的選擇。
十一、PDF處理庫
除了Excel和Word,PDF也是一種常用的文件格式。如果你的應用程序要支持PDF格式的文件處理,你可以使用 iText 和 Apache FOP 類庫。兩者都提供了非常有用的PDF處理功能。
十二、日期和時間庫
在Java之前,JDK的日期和時間庫一直被人們所詬病,比如其非線程安全的、不可變的、容易出錯等。很多開發人員會選擇更好用的 JodaTime 類庫。
但是在Java8推出之後,我們就可以徹底放棄JodaTime了,因為Java 8提供了其所有功能。但是,如果你的代碼運行在一個低版本的JDK中,那麼JodaTime還是值得使用的。
十三、集合類庫
雖然JDK有豐富的集合類,但還是有很多第三方類庫可以提供更多更好的功能。如 Apache Commons Collections 、 Goldman Sachs collections 、 Google Collections 和 Trove 。Trove尤其有用,因為它提供所有標准Collections 類的更快的版本以及能夠直接在原語(primitive)(例如包含int 鍵或值的Map 等)上操作的Collections 類的功能。
FastUtil是另一個類似的API,它繼承了Java Collection Framework,提供了數種特定類型的容器,包括映射map、集合set、列表list、優先順序隊列(prority queue),實現了java.util包的標准介面(還提供了標准類所沒有的雙向迭代器),還提供了很大的(64位)的array、set、list,以及快速、實用的二進制或文本文件的I/O操作類。
十四、郵件API
javax.mail 和 Apache Commons Email 提供了發送郵件的api。它們建立在JavaMail API的基礎上,提供簡化的用法。
十五、HTML解析庫
和XML與JSON類似,HTML是另外一種我們可能要打交道的傳輸格式。值得慶幸的是,我們有jsoup可以大大簡化Java應用程序使用HTML。你不僅可以使用 JSoup 解析HTML還可以創建HTML文檔。
十六、加密庫
Apache Commons家族中的 Commons Codec 就提供了一些公共的編解碼實現,比如Base64, Hex, MD5,Phonetic and URLs等等。
十七、嵌入式SQL資料庫庫
我真的是非常喜歡像 H2 這種內存資料庫,他可以嵌入到你的Java應用中。在你跑單測的時候如果你需要一個資料庫,用來驗證你的SQL的話,他是個很好的選擇。順便說一句,H2不是唯一嵌入式DB,你還有 Apache Derby 和 HSQL 可供選擇。
十八、JDBC故障診斷庫
有不錯的JDBC擴展庫的存在使得調試變得很容易,例如P6spy,這是一個針對資料庫訪問操作的動態監測框架,它使得資料庫數據可無縫截取和操縱,而不必對現有應用程序的代碼作任何修改。 P6Spy 分發包包括P6Log,它是一個可記錄任何 Java 應用程序的所有JDBC事務的應用程序。其配置完成使用時,可以進行數據訪問性能的監測。
十九、序列化庫
Google Protocol Buffer是一種輕便高效的結構化數據存儲格式,可以用於結構化數據串列化,或者說序列化。它很適合做數據存儲或 RPC 數據交換格式。可用於通訊協議、數據存儲等領域的語言無關、平台無關、可擴展的序列化結構數據格式。目前提供了 C++、Java、Python 三種語言的 API。
二十、網路庫
一些有用的網路庫主要有 Netty 的和 Apache MINA 。如果您正在編寫一個應用程序,你需要做的底層網路任務,可以考慮使用這些庫。
這都是每位Java開發人員應該熟悉的,並且十分有用的庫。Java生態系統非常龐大的,你會發現有很多不同的類庫可以做不同的事情。每個你想到的東西,都可能有一個庫可以做到。
要相信,你遇到的問題,肯定不止你一個遇到過。
要相信,也許有很多人比你更勤奮。
要相信,你用或不用,輪子就在那裡。
要相信,使用這些類庫,你和你的代碼都會變得更好。
原文鏈接:https://blog.csdn.net/u011001084/article/details/79216958
B. java post到第三方頁面,並傳遞參數
這跟java沒關系吧,做一個頁面的form提交就可以了
<form action="***" method="post" target="_blank">
這里寫你要提交的參數
</form>
然後提內交你這個form就可以容了
C. 常用的java第三方jar包有哪些附上用途的介紹,最好給官方下載連接,和中文文檔
commons-digester.jar
Digester基於規則的XML文檔解析,主要用於XML到Java對象的映射.
commons-beanutils.jar
提供對Java 反射和自省API的包裝.
aspectjweaver.jar
用於在Spring 2.0中集成AspectJ AspectJ LTW織入器
ognl.jar
OGNL是Object-Graph Navigation Language的縮寫,它是一種功能強大的表達式語言(Expression Language,簡稱為EL),通過它簡單一致的表達式語法,可以存取對象的任意屬性,調用對象的方法,遍歷整個對象的結構圖,實現欄位類型轉化等功 能。它使用相同的表達式去存取對象的屬性。
hibernate2依賴的一些包
hibernate2.jar
Hibernate的庫,沒有什麼可說的,必須使用的jar包
cglib-asm.jar:
CGLIB庫,Hibernate用它來實現PO位元組碼的動態生成,非常核心的庫,必須使用的jar包
dom4j.jar:
dom4j是一個Java的XML API,類似於jdom,用來讀寫XML文件的。dom4j是一個非常非常優秀的Java XML API,具有性能優異、功能強大和極端易用使用的特點,同時它也是一個開放源代碼的軟體,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,對主流的Java XML API進行的性能、功能和易用性的評測,dom4j無論在那個方面都是非常出色的。我早在將近兩年之前就開始使用dom4j,直到現在。如今你可以看到越 來越多的Java軟體都在使用dom4j來讀寫XML,特別值得一提的是連Sun的JAXM也在用dom4j。這是必須使用的jar 包,Hibernate用它來讀寫配置文件。
odmg.jar:
ODMG是一個ORM的規范,Hibernate實現了ODMG規范,這是一個核心的庫,必須使用的jar包。
commons-collections.jar:
Apache Commons包中的一個,包含了一些Apache開發的集合類,功能比java.util.*強大。必須使用的jar包。
commons-beanutils.jar:
Apache Commons包中的一個,包含了一些Bean工具類類。必須使用的jar包。
commons-lang.jar:
Apache Commons包中的一個,包含了一些數據類型工具類,是java.lang.*的擴展。必須使用的jar包。
commons-logging.jar:
Apache Commons包中的一個,包含了日誌功能,必須使用的jar包。這個包本身包含了一個Simple Logger,但是功能很弱。在運行的時候它會先在CLASSPATH找log4j,如果有,就使用log4j,如果沒有,就找JDK1.4帶的 java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出現是一個歷史的的遺留的遺憾,當初Apache極力游說Sun把log4j加入JDK1.4, 然而JDK1.4項目小組已經接近發布JDK1.4產品的時間了,因此拒絕了Apache的要求,使用自己的java.util.logging,這個包 的功能比log4j差的很遠,性能也一般。
後來Apache就開發出來了commons-logging.jar用來兼容兩個logger。因此用commons-logging.jar 寫的log程序,底層的Logger是可以切換的,你可以選擇log4j,java.util.logging或者它自帶的Simple Logger。不過我仍然強烈建議使用log4j,因為log4j性能很高,log輸出信息時間幾乎等於System.out,而處理一條log平均只需 要5us。你可以在Hibernate的src目錄下找到Hibernate已經為你准備好了的log4j的配置文件,你只需要到Apache 網站去下載log4j就可以了。commons-logging.jar也是必須的jar包。
使用Hibernate必須的jar包就是以上的這幾個,剩下的都是可選的。
ant.jar:
Ant編譯工具的jar包,用來編譯Hibernate源代碼的。如果你不準備修改和編譯Hibernate源代碼,那麼就沒有什麼用,可選的jar包
optional.jar:
Ant的一個輔助包。
c3p0.jar:
C3PO是一個資料庫連接池,Hibernate可以配置為使用C3PO連接池。如果你准備用這個連接池,就需要這個jar包。
proxool.jar:
也是一個連接池,同上。
commons-pool.jar,
commons-dbcp.jar:
DBCP資料庫連接池,Apache的Jakarta組織開發的,Tomcat4的連接池也是DBCP。
實際上Hibernate自己也實現了一個非常非常簡單的資料庫連接池,加上上面3個,你實際上可以在Hibernate上選擇4種不同的資料庫 連接池,選擇哪一個看個人的偏好,不過DBCP可能更通用一些。另外強調一點,如果在EJB中使用Hibernate,一定要用App Server的連接池,不要用以上4種連接池,否則容器管理事務不起作用。
connector.jar:
JCA 規范,如果你在App Server上把Hibernate配置為Connector的話,就需要這個jar。不過實際上一般App Server肯定會帶上這個包,所以實際上是多餘的包。
jaas.jar:
JAAS是用來進行許可權驗證的,已經包含在JDK1.4裡面了。所以實際上是多餘的包。
jcs.jar:
如果你准備在Hibernate中使用JCS的話,那麼必須包括它,否則就不用。
jdbc2_0-stdext.jar:
JDBC2.0的擴展包,一般來說資料庫連接池會用上它。不過App Server都會帶上,所以也是多餘的。
jta.jar:
JTA規范,當Hibernate使用JTA的時候需要,不過App Server都會帶上,所以也是多餘的。
junit.jar:
Junit包,當你運行Hibernate自帶的測試代碼的時候需要,否則就不用。
xalan.jar, xerces.jar, xml-apis.jar:
Xerces是XML解析器,Xalan是格式化器,xml-apis實際上是JAXP。一般App Server都會帶上,JDK1.4也包含了解析器,不過不是Xerces,是Crimson,效率比較差,不過Hibernate用XML只不過是讀取 配置文件,性能沒什麼緊要的,所以也是多餘的。
antlr.jar
語法生成工具詳見
D. GitHub上那些值得一試的Java開源庫
作為一名程序員,你幾乎每天都會使用到GitHub上的那些著名Java第三方庫,比如ApacheCommons,Spring,Hibernate等等。除了基襲這些,你可能還會fork或Star一些其他的開源庫,但GitHub上的庫實在太多了,以至於對於個人來說,你很難有時間去發現並了解那些不斷加入的新庫,而它們卻往往能在一些新興領域中給你提供幫助。
我一直使用JAVA來寫後端應用,平時也會關注一些國外技術大牛的博客(來自Tapki、DZone、GoogleDeveloper等技術博客),從而注意到了一些新的而且很有意思Java開源庫,它們有些能給你的項目帶來幫助,有些是以游戲的形式幫你提高Java的編程水平,而另一些則能夠幫助你識別JAVA程序中的常見問題。在這多達330,000個JAVA開源庫中,我收集了下面這些或許也值得你一試的Java開源庫。
Strman-java_字元串處理
Strmen-java是一個字元串處理工具,你可以通過maven將它引入到項目中。除了Java本身的字元串處理方式外,我們還可以使用ApacheCommonLangs里的StringUtils來簡化String的操作。但以上兩種方式對於我們日常編程中最容易碰到的字元串處理來說,仍然顯得有些不足。Strmen-java為我們提供了一個非常完整且強大的解決方案,使用它可以解決幾乎所有字元串瞎弊處理場景。
Bootique_微服務框架
以前開發Web應用程序時,我們總需要先構建一個應用,然後將它打包(war),再部署到如Tomcat這樣的Web容器中。但隨著微服務架構的流行,我們需要更輕量化,非容器的開發框架。SpringBoot是我一直在使用的,而Bootique無疑是另一種優秀的選擇。它允許你通過具有不同功能的模塊插入,來支持如RESTService,Webapp,定時調度,數據遷移等功能。而使用它寫的程序都則會被打包為一個Jar文件,你可以通過命令行更靈活地去啟動它。
從很多角度看,它都很像SpringBoot,將你從Java應用從它所依賴的Web容器中解放出來,程搏神兄序員們可以有更強的自主性,去寫主程序的main()函數。甚至在你不添加任何額外的模塊的情況下,你也能直接使用Bootqiue去實現一個Java應用。
Gumshoe_Java程序檢測
Gumshoe是一個JAVA程序檢測工具,它能幫助你跟蹤程序的負載和性能。它能通過度量TCP,UDP,CPU使用等信息,幫助你分析出資源的使用情況,同時電腦培訓發現它也提供了Java程序中調用棧的分析功能,比如提供某個方法調用的次數,頻度等信息。
E. Java有哪些值得推薦的,好用優秀的第三方庫
1. log4j
理由:向system.out.println()說永別,剛開始學java的時候總是喜歡依靠system.out.println()的輸出來查看異常和調試。後來工作後就果斷log4j了,這樣項目開發和發布的時候,可以根據自己的需求開關日誌級別,把日誌列印到遠程服務等多種功能。現在這個基本成為標配了。
2.guava
google出品的第三方工具庫。當java.util 提供的數據結構不能滿足的時候從這里你可以快速找到大量已經寫好的數據結構了,這使得你不用花費心思在一些常用的數據結構上了。比如LRU緩存之類的。只是好幾個版本的跨度比較大,兼容也不怎麼好。