หลังจาก Java 8 release ได้ 3 ปี กำหนดการ release Java 9 คือ 21 กันยายน 2560 นอกเหนือจากระบบ module ที่เป็นของใหม่และมีการพูดถึงมากที่สุดแล้ว ก็ยังมีหัวข้ออื่นๆอีก รวมเป็น 9 ข้อด้วยกัน
collection
เกร็ดเล็กเกร็ดน้อยใน Java | AWT headless, การเรียงลำดับใน Map และการปัดทศนิยม
เนื่องจากเรื่องที่จะเขียนนั้นสั้นมาก ได้มาจากการค้นหาข้อมูลเพื่อแก้ปัญหาในงานที่ทำ จึงขอรวมไว้ในโพสต์เดียวเลย
- โปรแกรมบนเครื่องที่ไม่มีจอภาพ ซึ่งศัพท์เฉพาะทางจะเรียกว่าเฮดเล็สเซิร์ฟเวอร์ (headless server) เช่น เครื่องเซิร์ฟเวอร์แบบเบลด (Blade server) การรันจะต้องระบุจาวาพร็อพเพอร์ตี้ -Djava.awt.headless=true ด้วย เพราะถ้าไม่ใส่ จะทำให้เกิดข้อผิดพลาด NoClassDefFoundError ได้ งงอยู่นาน คิดว่าคลาสพาธ (classpath) มีปัญหา
- ลำดับการเก็บข้อมูลในแม็พ (Map) อาจจะไม่ได้เรียงตามลำดับการใส่ข้อมูลเสมอไป ถ้าต้องการเรียงลำดับข้อมูล มี 2 ทางเลือกคือ ใช้ LinkedHashMap เพื่อเรียงลำดับตามการใส่ข้อมูลก่อนหลัง และ TreeMap ซึ่งจะเรียงลำดับตามค่าคีย์แบบน้อยไปหามาก ก่อนหน้านี้เข้าใจผิดคิดว่า HashMap ธรรมดาจะเรียงตามลำดับการใส่ข้อมูล
- คลาสแม็ธ (Math) สามารถปัดทศนิยมเป็นจำนวนเต็มได้ แต่ถ้าต้องการปัดให้ยังเหลือทศนิยมอยู่ ใช้วิธีการทางคณิตศาสตร์มาเสริมได้ เช่น ถ้าต้องการปัดให้เหลือทศนิยม 2 ตำแหน่ง ให้เขียนคำสั่ง (double) Math.round(value * 100) / 100 วิธีนี้ทำงานได้เร็วกว่าการใช้คลาสอื่นๆมาช่วย เช่น DecimalFormat เป็นเทคนิคที่ใช้งานได้ผลและทำงานในระดับคณิตศาสตร์ล้วนๆ
ที่มา:
- http://risingofsilversurfer.blogspot.sg/2013/07/how-to-avoid-javalangnoclassdeffounderr.html
- http://stackoverflow.com/questions/2144776/order-of-values-retrieved-from-a-hashmap
- http://stackoverflow.com/questions/153724/how-to-round-a-number-to-n-decimal-places-in-java
สแลช (SLASH)