
ไลบรารีหลัก Java ของ Google
Guava คือชุดไลบรารีหลัก Java ที่ครอบคลุมซึ่งพัฒนาโดย Google ออกแบบมาเพื่อปรับปรุงการพัฒนา Java ด้วยยูทิลิตี้ที่มีประสิทธิภาพและแข็งแกร่ง มันมีเครื่องมือที่จำเป็น รวมถึงประเภทคอลเลกชันใหม่ เช่น multimap และ multiset, คอลเลกชันที่ไม่เปลี่ยนรูป, ไลบรารีกราฟ และยูทิลิตี้สำหรับการทำงานพร้อมกัน, I/O, การแฮช, พรีมิทิทีฟ, สตริง และอื่นๆ ซึ่งแตกต่างจากไลบรารี Java มาตรฐาน Guava นำเสนอการใช้งานที่ปรับให้เหมาะสมและคุณสมบัติขั้นสูง เช่น สำนวนการเขียนโปรแกรมเชิงฟังก์ชันและการปรับปรุงประสิทธิภาพ เป็นประโยชน์อย่างยิ่งสำหรับนักพัฒนาที่ต้องการเขียนโค้ด Java ที่สะอาดขึ้น กระชับขึ้น และมีประสิทธิภาพมากขึ้น Guava ถูกใช้อย่างแพร่หลายภายใน Google และโดยบริษัทอื่นๆ อีกมากมาย ทำให้เป็นตัวเลือกที่เชื่อถือได้และผ่านการทดสอบอย่างดีสำหรับโปรเจกต์ Java มีให้เลือกทั้งแบบ JRE และ Android ซึ่งตอบสนองต่อสภาพแวดล้อมการพัฒนาที่หลากหลาย
Guava มีประเภทคอลเลกชันที่ไม่เปลี่ยนรูป เช่น `ImmutableList`, `ImmutableSet` และ `ImmutableMap` คอลเลกชันเหล่านี้มีความปลอดภัยของเธรดและป้องกันการแก้ไขโดยไม่ได้ตั้งใจ ซึ่งมีความสำคัญอย่างยิ่งสำหรับการเขียนโปรแกรมพร้อมกัน พวกมันถูกสร้างขึ้นโดยใช้รูปแบบ builder ทำให้มั่นใจได้ถึงความไม่เปลี่ยนรูปในเวลาสร้าง ซึ่งนำไปสู่ประสิทธิภาพที่ดีขึ้นและลดความเสี่ยงของข้อบกพร่อง ซึ่งแตกต่างจากคอลเลกชันที่เปลี่ยนแปลงได้ ซึ่งการแก้ไขอาจนำไปสู่พฤติกรรมที่ไม่คาดคิดในสภาพแวดล้อมแบบหลายเธรด
Guava แนะนำประเภทคอลเลกชันขั้นสูง เช่น `Multimap`, `Multiset` และ `Table` `Multimap` อนุญาตให้คีย์แมปไปยังหลายค่า `Multiset` นับจำนวนการเกิดขึ้นขององค์ประกอบ และ `Table` แสดงถึงแผนผังที่มีสองคีย์ ประเภทเหล่านี้ทำให้โครงสร้างข้อมูลที่ซับซ้อนง่ายขึ้น โดยให้ข้อได้เปรียบที่สำคัญกว่าคอลเลกชัน Java มาตรฐานสำหรับกรณีการใช้งานเฉพาะ เช่น การแสดงความสัมพันธ์หรือการนับจำนวนครั้งที่เกิดขึ้น
Guava มีเครื่องมือการทำงานพร้อมกันที่มีประสิทธิภาพ รวมถึง `Futures` และ `ListenableFuture` `Futures` ทำให้การเขียนโปรแกรมแบบอะซิงโครนัสง่ายขึ้นโดยจัดหาวิธีในการเชื่อมโยงและรวมงานแบบอะซิงโครนัส `ListenableFuture` ช่วยให้คุณสามารถลงทะเบียน callback เพื่อดำเนินการเมื่อเสร็จสิ้น future ทำให้ง่ายต่อการจัดการผลลัพธ์และข้อผิดพลาด เครื่องมือเหล่านี้ช่วยปรับปรุงการตอบสนองและประสิทธิภาพของแอปพลิเคชันที่ดำเนินการแบบอะซิงโครนัส
Guava มีคุณสมบัติการเขียนโปรแกรมเชิงฟังก์ชัน เช่น `Function`, `Predicate` และ `Optional` ยูทิลิตี้เหล่านี้ช่วยให้นักพัฒนาสามารถเขียนโค้ดที่กระชับและแสดงออกได้มากขึ้นโดยถือว่าฟังก์ชันเป็นพลเมืองชั้นหนึ่ง `Optional` ช่วยหลีกเลี่ยง `NullPointerExceptions` โดยจัดหาวิธีในการแสดงการไม่มีค่า แนวทางนี้ส่งเสริมการอ่านโค้ดและลดโอกาสเกิดข้อผิดพลาด โดยเฉพาะอย่างยิ่งเมื่อจัดการกับการแปลงข้อมูลที่ซับซ้อน
Guava มีชุดยูทิลิตี้การจัดการสตริงมากมาย รวมถึงวิธีการรวมสตริง การแยกสตริง และการเติมสตริง ยูทิลิตี้เหล่านี้ทำให้การดำเนินการสตริงทั่วไปง่ายขึ้น ลดความจำเป็นในการจัดการสตริงด้วยตนเองและปรับปรุงการอ่านโค้ด ตัวอย่างเช่น `Joiner` ช่วยให้คุณเชื่อมสตริงได้อย่างง่ายดายด้วยตัวคั่นที่ระบุ ในขณะที่ `Splitter` มีตัวเลือกการแยกสตริงที่ยืดหยุ่น
Guava มีไลบรารีการแฮชพร้อมการใช้งานของฟังก์ชันแฮชทั่วไป เช่น MD5, SHA-1 และ SHA-256 ฟังก์ชันเหล่านี้มีความจำเป็นสำหรับความสมบูรณ์ของข้อมูล ความปลอดภัย และการจัดทำดัชนี ไลบรารีมี API ที่สอดคล้องกันสำหรับการสร้างและทำงานกับรหัสแฮช ทำให้ง่ายต่อการรวมการแฮชเข้ากับแอปพลิเคชันของคุณ นอกจากนี้ยังมียูทิลิตี้สำหรับการเข้ารหัสและถอดรหัสข้อมูล เช่น การเข้ารหัส Base64
pom.xml: <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>33.5.0-jre</version></dependency> สำหรับ JRE หรือ <version>33.5.0-android</version> สำหรับ Android.,2. สำหรับ Gradle ให้เพิ่ม dependency ไปยังไฟล์ build.gradle ของคุณโดยใช้ implementation 'com.google.guava:guava:33.5.0-jre' สำหรับ JRE หรือ implementation 'com.google.guava:guava:33.5.0-android' สำหรับ Android.,3. นำเข้าคลาส Guava ที่จำเป็นลงในโค้ด Java ของคุณ เช่น com.google.common.collect.ImmutableList หรือ com.google.common.hash.Hashing.,4. ใช้ประเภทคอลเลกชันของ Guava (เช่น ImmutableList, Multimap) เพื่อสร้างคอลเลกชันที่ไม่เปลี่ยนรูปหรือจัดการโครงสร้างข้อมูลที่ซับซ้อนอย่างมีประสิทธิภาพ,5. ใช้ประโยชน์จากยูทิลิตี้ของ Guava สำหรับการทำงานพร้อมกัน (เช่น Futures, ListenableFuture) เพื่อจัดการการดำเนินการแบบอะซิงโครนัสและปรับปรุงการตอบสนองของแอปพลิเคชัน,6. สำรวจคุณสมบัติอื่นๆ ของ Guava รวมถึงการจัดการสตริง, การดำเนินการ I/O และยูทิลิตี้แบบพรีมิทิทีฟ เพื่อปรับปรุงขั้นตอนการพัฒนา Java ของคุณนักพัฒนาที่สร้างไปป์ไลน์การประมวลผลข้อมูลสามารถใช้ `Multimap` ของ Guava เพื่อจัดระเบียบข้อมูลอย่างมีประสิทธิภาพด้วยหลายค่าต่อคีย์ ตัวอย่างเช่น ระบบที่วิเคราะห์การเข้าชมเว็บไซต์สามารถใช้ `Multimap` เพื่อจัดเก็บการดูหน้าเว็บหลายรายการที่เชื่อมโยงกับเซสชันผู้ใช้เดียว ทำให้สามารถรวบรวมและวิเคราะห์พฤติกรรมผู้ใช้ได้อย่างมีประสิทธิภาพ
แอปพลิเคชันที่ใช้การแคชสามารถใช้ประโยชน์จาก `Cache` ของ Guava เพื่อจัดเก็บและเรียกใช้ข้อมูลที่เข้าถึงบ่อยครั้ง นักพัฒนาสามารถกำหนดค่าแคชด้วยนโยบายการไล่ออก เช่น การไล่ออกตามเวลาหรือตามขนาด เพื่อจัดการการใช้หน่วยความจำอย่างมีประสิทธิภาพ ซึ่งช่วยปรับปรุงประสิทธิภาพของแอปพลิเคชันโดยลดความจำเป็นในการดึงข้อมูลซ้ำๆ จากแหล่งข้อมูลที่ช้ากว่า
นักพัฒนาที่ทำงานกับแอปพลิเคชันที่มีการดำเนินการแบบอะซิงโครนัสสามารถใช้ `Futures` และ `ListenableFuture` ของ Guava เพื่อจัดการและเชื่อมโยงงาน ตัวอย่างเช่น แอปพลิเคชันบนเว็บสามารถใช้ `Futures` เพื่อจัดการการเรียก API หลายรายการพร้อมกัน ซึ่งช่วยปรับปรุงการตอบสนองของแอปพลิเคชันและลดเวลาแฝงโดยรวม
ทีมที่สร้างแอปพลิเคชันพร้อมกันสูงสามารถใช้คอลเลกชันที่ไม่เปลี่ยนรูปของ Guava เพื่อให้มั่นใจถึงความปลอดภัยของเธรดและป้องกันข้อมูลเสียหาย ตัวอย่างเช่น ระบบการซื้อขายทางการเงินสามารถใช้ `ImmutableList` เพื่อจัดเก็บข้อมูลธุรกรรม รับประกันว่าข้อมูลจะไม่สามารถแก้ไขได้หลังจากการสร้าง ซึ่งมีความสำคัญอย่างยิ่งในการรักษาความสมบูรณ์ของข้อมูล
นักพัฒนา Java ได้รับประโยชน์จากชุดยูทิลิตี้ที่ครอบคลุมของ Guava ซึ่งช่วยลดความซับซ้อนของงานการเขียนโปรแกรมทั่วไป ปรับปรุงการอ่านโค้ด และปรับปรุงประสิทธิภาพของแอปพลิเคชัน มันมีเครื่องมือสำหรับคอลเลกชัน การทำงานพร้อมกัน และการจัดการสตริง ปรับปรุงกระบวนการพัฒนาและลดโค้ด boilerplate
นักพัฒนา Android สามารถใช้ประโยชน์จาก Android flavor ของ Guava เพื่อใช้คุณสมบัติภายในแอปพลิเคชันมือถือของตน มีการใช้งานและยูทิลิตี้ที่ปรับให้เหมาะสมโดยเฉพาะสำหรับแพลตฟอร์ม Android ซึ่งช่วยปรับปรุงประสิทธิภาพของแอปและลดเวลาในการพัฒนา
วิศวกร Backend ที่ทำงานกับแอปพลิเคชันฝั่งเซิร์ฟเวอร์สามารถใช้ยูทิลิตี้การทำงานพร้อมกันและคอลเลกชันที่ไม่เปลี่ยนรูปของ Guava เพื่อสร้างระบบที่แข็งแกร่งและปรับขนาดได้ เครื่องมือต่างๆ ช่วยจัดการการดำเนินการแบบอะซิงโครนัส ทำให้มั่นใจถึงความปลอดภัยของเธรด และปรับปรุงประสิทธิภาพโดยรวมของบริการ Backend
สถาปนิกซอฟต์แวร์สามารถใช้ประโยชน์จาก Guava เพื่อออกแบบและสร้างระบบซอฟต์แวร์ที่บำรุงรักษาได้และมีประสิทธิภาพมากขึ้น คุณสมบัติของไลบรารี เช่น คอลเลกชันที่ไม่เปลี่ยนรูปและการสนับสนุนการเขียนโปรแกรมเชิงฟังก์ชัน ส่งเสริมแนวทางปฏิบัติในการเขียนโค้ดที่ดีและลดความเสี่ยงของข้อผิดพลาดในโปรเจกต์ที่ซับซ้อน
โอเพนซอร์ส (ใบอนุญาต Apache 2.0) ใช้งานและรวมเข้ากับโปรเจกต์ Java ใดๆ ได้ฟรี ไม่มีแผนชำระเงินหรือข้อจำกัดการใช้งาน