Tags:
Node Thumbnail

Oracle ออก Java 22 รุ่นซัพพอร์ตระยะสั้น 6 เดือน (Java 21 เป็นรุ่นซัพพอร์ตระยะยาวนาน 2 ปี)

ของใหม่ที่สำคัญของ Java 22 คือ Unnamed Variables & Patterns เปิดให้ตั้งชื่อตัวแปรที่ถูกบังคับให้ต้องมี แต่ไม่ต้องเรียกใช้งาน เป็นสัญลักษณ์ขีดล่าง (_) แทนการต้องตั้งชื่อตัวแปรอะไรก็ได้สักอย่าง

จากภาพตัวอย่างคือตัวแปร order ไม่ถูกเรียกใช้งานจริง แต่ต้องประกาศ (แถมโดนคอมไพเลอร์ด่าซ้ำว่ามีตัวแปรไม่ใช้งาน) ในสเปกของ Java 22 เปิดให้ใช้ตัว _ เพื่อบอกอย่างเจาะจงว่าเป็นตัวแปรที่ไม่ต้องตั้งชื่อได้แล้ว

No Description

No Description

ของใหม่อย่างอื่นคือ

  • Foreign Function & Memory API สำหรับการเชื่อมต่อกับฟังก์ชันที่เป็นภาษาอื่นนอก Java Runtime
  • Launch Multi-File Source-Code Programs การเรียกซอร์สโค้ด Java ที่อยู่ในหลายๆ ไฟล์โดยไม่ต้องคอมไพล์ก่อน
  • Regional Pinning for G1 การกำหนดเขตพื้นที่ทำงานในหน่วยความจำของ garbage collector G1 เมื่อต้องทำงานกับโค้ด C/C++ เพื่อให้ไม่ต้องปิดการทำงานของ G1 ทุกครั้งไป

Oracle ยังเปิดให้ใช้งาน Oracle GraalVM for JDK 22 ฟรี แบบเดียวกับที่เริ่มทำตอน Java 20 ด้วย

ที่มา - Oracle

Get latest news from Blognone

Comments

By: PH41
ContributorAndroidUbuntuWindows
on 20 March 2024 - 07:44 #1308303
PH41's picture

จากตัวอย่าง return orders.Length() ไปได้มั้ย 😂 ประหยัดกว่าเยอะ

อ่าน source code โดยไม่ต้อง compile คือ interpreter?

By: ZiiT
ContributorAndroidWindows
on 20 March 2024 - 09:23 #1308309 Reply to:1308303

ถ้าจะจับผิดตัวอย่างอาจจะต้องลงไปดูครับว่า Input data type เป็น Iterable มี method ที่ว่ารึเปล่า

By: rattananen
AndroidWindows
on 20 March 2024 - 10:26 #1308315 Reply to:1308303

iterator ไม่จำเป็นต้องเป็น container/collection น่ะครับ
ตาม concept มันมีแค่ begin node, end node, increasement (next), dereference (get value) แล้ว next node ไม่จำเป็นต้องเป็น series (ลำดับอนุกรม)

By: PH41
ContributorAndroidUbuntuWindows
on 21 March 2024 - 05:50 #1308367 Reply to:1308315
PH41's picture

ขอบคุณสำหรับข้อมูลครับ

By: sukjai
iPhoneAndroidRed HatUbuntu
on 20 March 2024 - 08:41 #1308305

+1

By: btoy
ContributorAndroidWindows
on 20 March 2024 - 09:42 #1308311
btoy's picture

รู้สึกดีกับการปรับเปลี่ยนกฏและ syntax ใหม่ๆในช่วงหลังๆ เผื่อกรณีที่จำเป็นต้องใช้ Java จริงๆ


..: เรื่อยไป

By: VanGogh
AndroidWindows
on 21 March 2024 - 08:43 #1308372 Reply to:1308311
VanGogh's picture

+1

By: mr_tawan
ContributoriPhoneAndroidWindows
on 20 March 2024 - 23:50 #1308362
mr_tawan's picture

ผมว่าไอ้นี่มันจะมีประโยชน์ตอนประกาศตัวแปรทีละเยอะ ๆ พร้อม ๆ กันในบรรทัดเดียวกันน่ะครับ Java ทำได้หรือยังนะ ไม่ได้ตามนานละ

ของ Go มันจะประมาณ

func perform()(res int, err error){
    return 0, nil
}

res, _:= perform()

  • 9tawan.net บล็อกส่วนตัวฮับ
By: PH41
ContributorAndroidUbuntuWindows
on 21 March 2024 - 05:52 #1308368 Reply to:1308362
PH41's picture

ซึ่ง java ไม่มี tuple

และใช้ throw exception แทน error ซึ่งทำให้มีทางออกมากกว่า 1 ทาง แถมมี Runtime Exception ที่ไม่มีลางบอกเหตุอีกว่ามันมีโอกาสพัง

By: btoy
ContributorAndroidWindows
on 25 March 2024 - 13:08 #1308667 Reply to:1308362
btoy's picture

ผมชอบ Go เพราะวิธีการ handle error แบบนี้นี่ล่ะครับ (ในขณะที่หลายๆคนไม่ชอบ ฮ่า) และส่วนตัวไม่ค่อยชอบ Exception


..: เรื่อยไป

By: PH41
ContributorAndroidUbuntuWindows
on 22 April 2024 - 13:25 #1310230 Reply to:1308362
PH41's picture

ส่วนของ Swift ก็มี Result น่ารักไปอีกแบบ
แต่ Go ยังไม่ทำ enum เท่าที่จำได้เขาบอกว่า enum แต่ละเจ้าก็ implement ไม่เหมือนกันเลือกกันมาคนละอย่างสองอย่าง และแบบที่มีอยู่ก็ทำคล้าย ๆ enum ได้เช่น iota