ಜಾವಾ SE 20 ಬಿಡುಗಡೆ

ಆರು ತಿಂಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, Oracle ಜಾವಾ SE 20 (ಜಾವಾ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್, ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಆವೃತ್ತಿ 20) ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿತು, ಇದು ಓಪನ್ ಸೋರ್ಸ್ OpenJDK ಯೋಜನೆಯನ್ನು ಉಲ್ಲೇಖದ ಅನುಷ್ಠಾನವಾಗಿ ಬಳಸುತ್ತದೆ. ಕೆಲವು ಬಳಕೆಯಲ್ಲಿಲ್ಲದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದನ್ನು ಹೊರತುಪಡಿಸಿ, Java SE 20 ಜಾವಾ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ಹಿಂದಿನ ಬಿಡುಗಡೆಗಳೊಂದಿಗೆ ಹಿಂದುಳಿದ ಹೊಂದಾಣಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ - ಹೊಸ ಆವೃತ್ತಿಯ ಅಡಿಯಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಹೆಚ್ಚಿನ ಹಿಂದೆ ಬರೆದ ಜಾವಾ ಯೋಜನೆಗಳು ಬದಲಾವಣೆಗಳಿಲ್ಲದೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಲಿನಕ್ಸ್ (x20_86, AArch64), Windows (x64_86) ಮತ್ತು macOS (x64_86, AArch64) ಗಾಗಿ Java SE 64 (JDK, JRE ಮತ್ತು ಸರ್ವರ್ JRE) ನ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಸಿದ್ಧವಾಗಿದೆ. OpenJDK ಯೋಜನೆಯಿಂದ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ, ಜಾವಾ 20 ಉಲ್ಲೇಖದ ಅನುಷ್ಠಾನವು GPLv2 ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಸಂಪೂರ್ಣವಾಗಿ ಮುಕ್ತ ಮೂಲವಾಗಿದೆ, GNU ClassPath ವಿನಾಯಿತಿಗಳೊಂದಿಗೆ ವಾಣಿಜ್ಯ ಉತ್ಪನ್ನಗಳೊಂದಿಗೆ ಡೈನಾಮಿಕ್ ಲಿಂಕ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ.

Java SE 20 ಅನ್ನು ಸಾಮಾನ್ಯ ಬೆಂಬಲ ಬಿಡುಗಡೆ ಎಂದು ವರ್ಗೀಕರಿಸಲಾಗಿದೆ ಮತ್ತು ಮುಂದಿನ ಬಿಡುಗಡೆಯವರೆಗೂ ನವೀಕರಣಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ. ದೀರ್ಘಾವಧಿಯ ಬೆಂಬಲ (LTS) ಶಾಖೆಯು Java SE 17 ಆಗಿರಬೇಕು, ಇದು 2029 ರವರೆಗೆ ನವೀಕರಣಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ. ಜಾವಾ 10 ರ ಬಿಡುಗಡೆಯಿಂದ ಪ್ರಾರಂಭಿಸಿ, ಯೋಜನೆಯು ಹೊಸ ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಗೆ ಬದಲಾಯಿತು, ಹೊಸ ಬಿಡುಗಡೆಗಳ ರಚನೆಗೆ ಕಡಿಮೆ ಚಕ್ರವನ್ನು ಸೂಚಿಸುತ್ತದೆ ಎಂದು ನಾವು ನಿಮಗೆ ನೆನಪಿಸೋಣ. ಹೊಸ ಕಾರ್ಯವನ್ನು ಈಗ ನಿರಂತರವಾಗಿ ನವೀಕರಿಸಿದ ಮಾಸ್ಟರ್ ಶಾಖೆಯಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ, ಇದು ಸಿದ್ಧ ಬದಲಾವಣೆಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ಹೊಸ ಬಿಡುಗಡೆಗಳನ್ನು ಸ್ಥಿರಗೊಳಿಸಲು ಪ್ರತಿ ಆರು ತಿಂಗಳಿಗೊಮ್ಮೆ ಶಾಖೆಗಳನ್ನು ಶಾಖೆ ಮಾಡಲಾಗುತ್ತದೆ.

Java 20 ನಲ್ಲಿನ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಸೇರಿವೆ:

  • ಸ್ಕೋಪ್ಡ್ ಮೌಲ್ಯಗಳಿಗೆ ಪ್ರಾಥಮಿಕ ಬೆಂಬಲವಿದೆ, ಥ್ರೆಡ್‌ಗಳಾದ್ಯಂತ ಬದಲಾಗದ ಡೇಟಾವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಮತ್ತು ಚೈಲ್ಡ್ ಥ್ರೆಡ್‌ಗಳ ನಡುವೆ ಡೇಟಾವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ವಿನಿಮಯ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ (ಮೌಲ್ಯಗಳು ಆನುವಂಶಿಕವಾಗಿರುತ್ತವೆ). ಥ್ರೆಡ್-ಸ್ಥಳೀಯ ಅಸ್ಥಿರ ಕಾರ್ಯವಿಧಾನವನ್ನು ಬದಲಿಸಲು ಸ್ಕೋಪ್ಡ್ ಮೌಲ್ಯಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತಿದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ವರ್ಚುವಲ್ ಥ್ರೆಡ್‌ಗಳನ್ನು (ಸಾವಿರಾರು ಅಥವಾ ಮಿಲಿಯನ್ ಥ್ರೆಡ್‌ಗಳು) ಬಳಸುವಾಗ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿರುತ್ತದೆ. ಸ್ಕೋಪ್ಡ್ ಮೌಲ್ಯಗಳು ಮತ್ತು ಥ್ರೆಡ್-ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳ ನಡುವಿನ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಹಿಂದಿನದನ್ನು ಒಮ್ಮೆ ಬರೆಯಲಾಗುತ್ತದೆ, ಭವಿಷ್ಯದಲ್ಲಿ ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಥ್ರೆಡ್ನ ಮರಣದಂಡನೆಯ ಅವಧಿಗೆ ಮಾತ್ರ ಲಭ್ಯವಿರುತ್ತದೆ. ವರ್ಗ ಸರ್ವರ್ {ಅಂತಿಮ ಸ್ಥಿರ ಸ್ಕೋಪ್ಡ್ ವ್ಯಾಲ್ಯೂ CURRENT_USER = ಹೊಸ ಸ್ಕೋಪ್ಡ್ ವ್ಯಾಲ್ಯೂ(); ಅನೂರ್ಜಿತ ಸೇವೆ (ವಿನಂತಿ ವಿನಂತಿ, ಪ್ರತಿಕ್ರಿಯೆ ಪ್ರತಿಕ್ರಿಯೆ) {var ಮಟ್ಟ = (ವಿನಂತಿ. isAuthorized()? ADMIN : GUEST); var ಬಳಕೆದಾರ = ಹೊಸ ಬಳಕೆದಾರ (ಹಂತ); ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(ವಿನಂತಿ, ಪ್ರತಿಕ್ರಿಯೆ)); } } ವರ್ಗ ಡೇಟಾಬೇಸ್ ಮ್ಯಾನೇಜರ್ {DBCconnection open() {var user = Server.CURRENT_USER.get(); ಒಂದು ವೇಳೆ (!user.canOpen()) ಹೊಸ InvalidUserException(); ಹೊಸ DBCconnection(...) ಹಿಂತಿರುಗಿ; } }
  • ರೆಕಾರ್ಡ್ ಪ್ಯಾಟರ್ನ್‌ಗಳ ಎರಡನೇ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ರೆಕಾರ್ಡ್ ವರ್ಗಗಳ ಮೌಲ್ಯಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು Java 16 ನಲ್ಲಿ ಪರಿಚಯಿಸಲಾದ ಪ್ಯಾಟರ್ನ್ ಮ್ಯಾಚಿಂಗ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ: ರೆಕಾರ್ಡ್ ಪಾಯಿಂಟ್ (int x, int y) {} ಸ್ಥಾಯೀ ನಿರರ್ಥಕ ಪ್ರಿಂಟ್‌ಸಮ್ (ಆಬ್ಜೆಕ್ಟ್ obj) { if (obj instance of Point p) { int x = px(); ಇಂಟ್ ವೈ = ಪೈ (); System.out.println(x+y); } }
  • "ಸ್ವಿಚ್" ಹೇಳಿಕೆಗಳಲ್ಲಿ ಪ್ಯಾಟರ್ನ್ ಹೊಂದಾಣಿಕೆಯ ನಾಲ್ಕನೇ ಪ್ರಾಥಮಿಕ ಅನುಷ್ಠಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, "ಕೇಸ್" ಲೇಬಲ್‌ಗಳನ್ನು ನಿಖರವಾದ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಆದರೆ ಒಂದೇ ಬಾರಿಗೆ ಮೌಲ್ಯಗಳ ಸರಣಿಯನ್ನು ಒಳಗೊಂಡಿರುವ ಹೊಂದಿಕೊಳ್ಳುವ ಮಾದರಿಗಳು, ಇದಕ್ಕಾಗಿ ಹಿಂದೆ ತೊಡಕನ್ನು ಬಳಸಬೇಕಾಗಿತ್ತು. "if... else" ಅಭಿವ್ಯಕ್ತಿಗಳ ಸರಪಳಿಗಳು. ಸ್ಥಿರ ಸ್ಟ್ರಿಂಗ್ ಫಾರ್ಮ್ಯಾಟರ್‌ಪ್ಯಾಟರ್ನ್‌ಸ್ವಿಚ್ (ಆಬ್ಜೆಕ್ಟ್ ಆಬ್ಜೆಕ್ಟ್) {ರಿಟರ್ನ್ ಸ್ವಿಚ್ (ಒಬ್ಜೆ) {ಕೇಸ್ ಪೂರ್ಣಾಂಕ i -> String.format("int %d", i); ಸಂದರ್ಭದಲ್ಲಿ Long l -> String.format("ಉದ್ದ %d", l); ಕೇಸ್ ಡಬಲ್ d -> String.format("ಡಬಲ್ %f", d); ಕೇಸ್ ಸ್ಟ್ರಿಂಗ್ s -> String.format("ಸ್ಟ್ರಿಂಗ್ %s", s); ಡೀಫಾಲ್ಟ್ -> o.toString(); }; }
  • FFM (ವಿದೇಶಿ ಕಾರ್ಯ ಮತ್ತು ಮೆಮೊರಿ) API ಯ ಎರಡನೇ ಪ್ರಾಥಮಿಕ ಅನುಷ್ಠಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಬಾಹ್ಯ ಲೈಬ್ರರಿಗಳಿಂದ ಕರೆ ಮಾಡುವ ಕಾರ್ಯಗಳ ಮೂಲಕ ಮತ್ತು JVM ನ ಹೊರಗೆ ಮೆಮೊರಿಯನ್ನು ಪ್ರವೇಶಿಸುವ ಮೂಲಕ ಬಾಹ್ಯ ಕೋಡ್ ಮತ್ತು ಡೇಟಾದೊಂದಿಗೆ ಜಾವಾ ಕಾರ್ಯಕ್ರಮಗಳ ಪರಸ್ಪರ ಕ್ರಿಯೆಯನ್ನು ಸಂಘಟಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
  • ವರ್ಚುವಲ್ ಥ್ರೆಡ್‌ಗಳ ಎರಡನೇ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಅವುಗಳು ಹಗುರವಾದ ಥ್ರೆಡ್‌ಗಳಾಗಿವೆ, ಇದು ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಬಹು-ಥ್ರೆಡ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಬರೆಯುವುದನ್ನು ಮತ್ತು ನಿರ್ವಹಿಸುವುದನ್ನು ಹೆಚ್ಚು ಸರಳಗೊಳಿಸುತ್ತದೆ.
  • ರಚನಾತ್ಮಕ ಸಮಾನಾಂತರತೆಗಾಗಿ ಎರಡನೇ ಪ್ರಾಯೋಗಿಕ API ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ವಿವಿಧ ಥ್ರೆಡ್‌ಗಳಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಬಹು ಕಾರ್ಯಗಳನ್ನು ಒಂದೇ ಬ್ಲಾಕ್‌ನಂತೆ ಪರಿಗಣಿಸುವ ಮೂಲಕ ಬಹು-ಥ್ರೆಡ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಅಭಿವೃದ್ಧಿಯನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ.
  • ವೆಕ್ಟರ್ API ಯ ಐದನೇ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ, x86_64 ಮತ್ತು AArch64 ಪ್ರೊಸೆಸರ್‌ಗಳಲ್ಲಿ ವೆಕ್ಟರ್ ಸೂಚನೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ವಹಿಸುವ ವೆಕ್ಟರ್ ಲೆಕ್ಕಾಚಾರಗಳಿಗೆ ಕಾರ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಬಹು ಮೌಲ್ಯಗಳಿಗೆ (SIMD) ಏಕಕಾಲದಲ್ಲಿ ಅನ್ವಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಸ್ಕೇಲಾರ್ ಕಾರ್ಯಾಚರಣೆಗಳ ಸ್ವಯಂ-ವೆಕ್ಟರೈಸೇಶನ್‌ಗಾಗಿ ಹಾಟ್‌ಸ್ಪಾಟ್ ಜೆಐಟಿ ಕಂಪೈಲರ್‌ನಲ್ಲಿ ಒದಗಿಸಲಾದ ಸಾಮರ್ಥ್ಯಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, ಹೊಸ API ಸಮಾನಾಂತರ ಡೇಟಾ ಪ್ರಕ್ರಿಯೆಗಾಗಿ ವೆಕ್ಟರೈಸೇಶನ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ನಿಯಂತ್ರಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ