āĻāϝāĻŧ āĻŽāĻžāϏ āϧāϰ⧠āĻāύā§āύāϝāĻŧāύā§āϰ āĻĒāϰ, āĻāϰāĻžāĻāϞ āĻāĻžāĻāĻž āĻāϏāĻ ā§§ā§ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ (āĻāĻžāĻāĻž āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ, āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻāĻĄāĻŋāĻļāύ ā§§ā§) āĻĒā§āϰāĻāĻžāĻļ āĻāϰā§āĻā§, āϝāĻž āĻāϰ āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻā§āĻļāύ āĻšāĻŋāϏā§āĻŦā§ āĻāĻĒā§āύ āϏā§āϰā§āϏ āĻāĻĒā§āύāĻā§āĻĄāĻŋāĻā§ (OpenJDK) āĻĒā§āϰāĻā§āĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āĻāĻŋāĻā§ āĻĄā§āĻĒā§āϰāĻŋāĻā§āĻā§āĻĄ āĻĢāĻŋāĻāĻžāϰ āĻ āĻĒāϏāĻžāϰāĻŖ āĻāϰāĻž āĻāĻžāĻĄāĻŧāĻž, āĻāĻžāĻāĻž āĻāϏāĻ ā§§ā§ āĻāĻžāĻāĻž āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§āϰ āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞā§āϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻžāĻāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻŽā§āĻĒā§āϝāĻžāĻāĻŋāĻŦāĻŋāϞāĻŋāĻāĻŋ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻā§âāĻāĻā§ āϞā§āĻāĻž āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻāĻžāĻāĻž āĻĒā§āϰāĻā§āĻā§āĻ āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖā§ āĻāĻžāϞāĻžāϞā§āĻ āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻāĻžāĻāĻž āĻāϏāĻ ā§§ā§-āĻāϰ (āĻā§āĻĄāĻŋāĻā§, āĻā§āĻāϰāĻ, āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ āĻā§āĻāϰāĻ) āϰā§āĻĄāĻŋ-āĻā§-āĻāύāϏā§āĻāϞ āĻŦāĻŋāϞā§āĻĄāĻā§āϞ⧠āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ Linux (x86_64, AArch64), Windows (x86_64) āĻāĻŦāĻ macOS (x86_64, AArch64)āĨ¤ OpenJDK āĻĒā§āϰāĻā§āĻā§āĻ āĻĻā§āĻŦāĻžāϰāĻž āϤā§āϰāĻŋ, āĻāĻžāĻāĻž ā§§ā§ āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻā§āĻļāύāĻāĻŋ GPLv2 āϞāĻžāĻāϏā§āύā§āϏā§āϰ āĻ āϧā§āύ⧠āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻĒā§āύ āϏā§āϰā§āϏ āĻāĻŦāĻ āĻāϤ⧠GNU ClassPath Exception āϰāϝāĻŧā§āĻā§, āϝāĻž āĻŦāĻžāĻŖāĻŋāĻā§āϝāĻŋāĻ āĻĒā§āϰā§āĻĄāĻžāĻā§āĻā§āϰ āϏāĻžāĻĨā§ āĻĄāĻžāĻāύāĻžāĻŽāĻŋāĻ āϞāĻŋāĻā§āĻāĻŋāĻāϝāĻŧā§āϰ āϏā§āϝā§āĻ āĻĻā§āϝāĻŧāĨ¤
Java SE 22 āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āϏāĻŽāϰā§āĻĨāύ āϰāĻŋāϞāĻŋāĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻļā§āϰā§āĻŖā§āĻŦāĻĻā§āϧ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻĒāϰāĻŦāϰā§āϤ⧠āϰāĻŋāϞāĻŋāĻ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻĒāĻĄā§āĻ āĻĒā§āϤ⧠āĻĨāĻžāĻāĻŦā§āĨ¤ āϞāĻ āĻāĻžāϰā§āĻŽ āϏāĻžāĻĒā§āϰā§āĻ (LTS) āĻļāĻžāĻāĻžāĻāĻŋ Java SE 21 āĻŦāĻž Java SE 17 āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ, āϝāĻž āϝāĻĨāĻžāĻā§āϰāĻŽā§ 2031 āĻāĻŦāĻ 2029 āĻĒāϰā§āϝāύā§āϤ āĻāĻĒāĻĄā§āĻ āĻĒāĻžāĻŦā§ (āϏāĻžāϧāĻžāϰāĻŖāϤ 2028 āĻāĻŦāĻ 2026 āĻĒāϰā§āϝāύā§āϤ āĻāĻĒāϞāĻŦā§āϧ)āĨ¤ Java SE 11-āĻāϰ LTS āĻļāĻžāĻāĻžāϰ āĻāύāϏāĻžāϧāĻžāϰāĻŖā§āϰ āϏāĻŽāϰā§āĻĨāύ āĻāϤ āϏā§āĻĒā§āĻā§āĻŽā§āĻŦāϰ⧠āĻļā§āώ āĻšāϝāĻŧā§āĻā§, āĻāĻŋāύā§āϤ⧠āĻŦāϰā§āϧāĻŋāϤ āϏāĻŽāϰā§āĻĨāύ 2032 āϏāĻžāϞ āĻĒāϰā§āϝāύā§āϤ āĻ āĻŦā§āϝāĻžāĻšāϤ āĻĨāĻžāĻāĻŦā§āĨ¤ Java SE 8 āĻāϰ LTS āĻļāĻžāĻāĻžāϰ āĻāύā§āϝ āĻŦāϰā§āϧāĻŋāϤ āϏāĻŽāϰā§āĻĨāύ 2030 āϏāĻžāϞ āĻĒāϰā§āϝāύā§āϤ āĻ āĻŦā§āϝāĻžāĻšāϤ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻāϏā§āύ āĻāĻŽāϰāĻž āĻāĻĒāύāĻžāĻā§ āĻŽāύ⧠āĻāϰāĻŋāϝāĻŧā§ āĻĻāĻŋāĻ āϝ⧠āĻāĻžāĻāĻž 10 āĻĒā§āϰāĻāĻžāĻļā§āϰ āϏāĻžāĻĨā§ āĻļā§āϰ⧠āĻāϰā§, āĻĒā§āϰāĻāϞā§āĻĒāĻāĻŋ āĻāĻāĻāĻŋ āύāϤā§āύ āĻŦāĻŋāĻāĻžāĻļ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāϝāĻŧ āϏā§āϝā§āĻāĻ āĻāϰā§āĻā§, āύāϤā§āύ āϰāĻŋāϞāĻŋāĻ āĻāĻ āύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻā§āĻ āĻāĻā§āϰāĻā§ āĻŦā§āĻāĻžāϝāĻŧāĨ¤ āύāϤā§āύ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āĻāĻāύ āĻāĻāĻāĻŋ āĻā§āϰāĻŽāĻžāĻāϤ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž āĻŽāĻžāϏā§āĻāĻžāϰ āĻļāĻžāĻāĻžāϝāĻŧ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻžāϰ āĻŽāϧā§āϝ⧠āϤā§āϰāĻŋ āĻāϰāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āϰāϝāĻŧā§āĻā§ āĻāĻŦāĻ āϝā§āĻā§āϞāĻŋ āĻĨā§āĻā§ āύāϤā§āύ āĻĒā§āϰāĻāĻžāĻļāĻā§āϞāĻŋāĻā§ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϤāĻŋ āĻāϝāĻŧ āĻŽāĻžāϏ⧠āĻļāĻžāĻāĻžāĻā§āϞāĻŋāĻā§ āĻļāĻžāĻāĻž āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻāĻžāĻāĻž 22-āĻāϰ āύāϤā§āύ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāϰ āĻŽāϧā§āϝ⧠āϰāϝāĻŧā§āĻā§:
- G1 āĻāĻŦāϰā§āĻāύāĻž āϏāĻāĻā§āϰāĻžāĻšāĻ āĻ āĻā§āĻāϞ⧠āĻĒāĻŋāύ āĻāϰāĻžāϰ āĻāύā§āϝ āϏāĻŽāϰā§āĻĨāύ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§, āϝāĻž āĻāĻĒāύāĻžāĻā§ āĻāĻžāĻāĻž āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻ āĻŦāϏā§āĻĨāĻžāύ āĻ āϏā§āĻĨāĻžāϝāĻŧā§āĻāĻžāĻŦā§ āĻŽā§āĻŽāϰāĻŋāϤ⧠āĻ āĻŋāĻ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ āϝāĻžāϤ⧠āϏā§āĻā§āϞāĻŋāĻā§ āĻāĻŦāϰā§āĻāύāĻž āϏāĻāĻā§āϰāĻšāĻāĻžāϰā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āϏāϰāĻžāύ⧠āύāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻāĻ āĻŦāϏā§āϤā§āϰ āϰā§āĻĢāĻžāϰā§āύā§āϏāĻā§āϞāĻŋāĻā§ Java āĻāĻŦāĻ āύā§āĻāĻŋāĻ āĻā§āĻĄā§āϰ āĻŽāϧā§āϝ⧠āύāĻŋāϰāĻžāĻĒāĻĻā§ āĻĒāĻžāϏ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤ āĻĒāĻŋāύāĻŋāĻ āĻāĻĒāύāĻžāĻā§ āϞā§āĻā§āύā§āϏāĻŋ āĻāĻŽāĻžāϤ⧠āĻāĻŦāĻ āύā§āĻāĻŋāĻ āĻā§āĻĄ āϏāĻš JNI (āĻāĻžāĻāĻž āύā§āĻāĻŋāĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏ) āĻāϰ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻ āĻā§āĻāϞāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻŦāϰā§āĻāύāĻž āϏāĻāĻā§āϰāĻšāĻā§ āĻ āĻā§āώāĻŽ āĻāϰāĻž āĻāĻĄāĻŧāĻžāϤ⧠āĻĻā§āϝāĻŧ (āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻā§āϞāĻŋ āĻāĻžāϞāĻžāύā§āϰ āϏāĻŽāϝāĻŧ, āĻāĻžāϤāĻŋ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋ āĻāĻĄāĻŧāĻžāϤ⧠JVM āϤāĻžāĻĻā§āϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻāĻāĻŋāϞ āĻŦāϏā§āϤā§āĻā§āϞāĻŋāĻā§ āϏāϰāĻžāύ⧠āĻāĻāĻŋāϤ āύāϝāĻŧ)āĨ¤ āĻĒāĻŋāύāĻŋāĻ āĻāĻŦāϰā§āĻāύāĻž āϏāĻāĻā§āϰāĻšāĻāĻžāϰā§āϰ āĻĻā§āώā§āĻāĻŋ āĻĨā§āĻā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻŦāϏā§āϤā§āĻā§āϞāĻŋāĻā§ āϏāϰāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧ, āϝāĻž āĻāύāĻĒāĻŋāύ āĻāϰāĻž āĻāĻžāϝāĻŧāĻāĻžāĻā§āϞāĻŋ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻāϰāĻž āĻāĻžāϞāĻŋāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
- āϏā§āĻĒāĻžāϰ(...) āĻāϞ āĻāϰāĻžāϰ āĻāĻā§ āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰāĻā§āϞāĻŋāϤ⧠āĻāĻā§āϏāĻĒā§āϰā§āĻļāύāĻā§āϞāĻŋāĻā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϝā§āĻā§āϤ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻĻāĻŋ āĻāĻ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύāĻā§āϞāĻŋ āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āϤā§āϰāĻŋ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§ āύāĻŋāϰā§āĻĻā§āĻļ āύāĻž āĻāϰ⧠āϤāĻŦā§ āĻāĻāĻāĻŋ āĻāϤā§āϤāϰāĻžāϧāĻŋāĻāĻžāϰ⧠āĻļā§āϰā§āĻŖāĻŋ āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āϝāĻžāϰā§āύā§āĻ āĻā§āϞāĻžāϏ āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰāĻā§ āϏā§āĻĒāώā§āĻāĻāĻžāĻŦā§ āĻāϞ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤ āĻā§āϞāĻžāϏ āĻāĻāĻāĻžāϰ { void hello() { System.out.println("āĻšā§āϝāĻžāϞā§"); } āĻā§āϞāĻžāϏ āĻāύāĻžāϰ { āĻāύāĻžāϰ() { āĻšā§āϝāĻžāϞā§(); āϏā§āĻĒāĻžāϰ(); } } }
- āĻāĻĢāĻāĻĢāĻāĻŽ (āĻĢāϰā§āύ āĻĢāĻžāĻāĻļāύ āĻ ā§āϝāĻžāύā§āĻĄ āĻŽā§āĻŽāϰāĻŋ) āĻāĻĒāĻŋāĻāĻāĻā§ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻāĻžāĻāĻž āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻā§ āĻŦāĻžāĻšā§āϝāĻŋāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻĨā§āĻā§ āĻĢāĻžāĻāĻļāύ āĻāϞ āĻāϰ⧠āĻāĻŦāĻ āĻā§āĻāύāĻāĻ (āĻāĻžāĻāĻž āύā§āĻāĻŋāĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰā§āĻ JVM-āĻāϰ āĻŦāĻžāĻāϰ⧠āĻŽā§āĻŽāϰāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻŦāĻžāĻšā§āϝāĻŋāĻ āĻā§āĻĄ āĻāĻŦāĻ āĻĄā§āĻāĻžāϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤
- āύāĻžāĻŽāĻšā§āύ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻāĻŦāĻ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻŽā§āϝāĻžāĻāĻŋāĻ āĻāϰ āĻāύā§āϝ āϏāĻŽāϰā§āĻĨāύ āϏāĻā§āώāĻŽ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ - āĻāϞ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŋāύā§āϤ⧠āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻāĻŦāĻ āĻĒā§āϝāĻžāĻāĻžāϰā§āύā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤā§, āĻāĻĒāύāĻŋ āĻāĻāύ "_" āĻ āĻā§āώāϰāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ // āĻāĻŋāϞ āϏā§āĻā§āϰāĻŋāĻ pageName = āϏā§āĻāĻ (āĻĒā§āώā§āĻ āĻž) { case GitHubIssuePage(var url, var āϏāĻžāĻŽāĻā§āϰā§, var āϞāĻŋāĻā§āĻ, int issueNumber) -> âāĻāϏā§āϝ⧠#â + issueNumber; ... }; // āĻāĻāύ āĻāĻĒāύāĻŋ String pageName = āϏā§āĻāĻ (āĻĒā§āώā§āĻ āĻž) { case GitHubIssuePage(_, _, _, int issueNumber) -> "āĻāϏā§āϝ⧠#" + issueNumber; };
- āĻāĻžāĻāĻž āĻā§āϞāĻžāϏ āĻĢāĻžāĻāϞ āĻĒāĻžāϰā§āϏāĻŋāĻ, āĻā§āύāĻžāϰā§āĻ āĻāĻŦāĻ āĻāύāĻāĻžāϰā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻā§āϞāĻžāϏ-āĻĢāĻžāĻāϞ API-āĻāϰ āĻāĻāĻāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte[] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> { (ClassElement ce : classModel) { if (!(ce instance of MethodModel mm && mm.methodName().stringValue() āĻāϰ āĻāύā§āϝāĨ¤ startsWith("debug"))) { classBuilder.with(ce);
- āĻāĻžāĻāĻž āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āĻāĻžāĻāĻž āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻā§āϞāĻŋ āĻāĻžāϞāĻžāύā§āϰ āĻā§āώāĻŽāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§, āĻŦāĻŋāĻāĻŋāύā§āύ āĻā§āĻĄ āĻĢāĻžāĻāϞ āĻŦāĻž āĻĒā§āϰāĻŋ-āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻž āĻā§āϞāĻžāϏ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻāĻāĻžāϰ⧠āϏāϰāĻŦāϰāĻžāĻš āĻāϰāĻž āĻšāϝāĻŧ, āĻāĻ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻāϞāĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻāĻŽā§āĻĒāĻžāĻāϞ āύāĻž āĻāϰ⧠āĻāĻŦāĻ āĻŦāĻŋāϞā§āĻĄ āϏāĻŋāϏā§āĻā§āĻŽ āĻāύāĻĢāĻŋāĻāĻžāϰ āύāĻž āĻāϰā§āĨ¤ āύāϤā§āύ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻāĻŋ āĻāĻŽāύ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻā§āϞāĻŋ āĻāĻžāϞāĻžāύ⧠āϏāĻšāĻ āĻāϰ⧠āϤā§āϞ⧠āϝā§āĻāĻžāύ⧠āĻŦāĻŋāĻāĻŋāύā§āύ āĻļā§āϰā§āĻŖā§āϰ āĻā§āĻĄ āĻĒā§āĻĨāĻ āĻĢāĻžāĻāϞāĻā§āϞāĻŋāϤ⧠āĻĒā§āĻĨāĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ Prog.java: āĻā§āϞāĻžāϏ āĻĒā§āϰā§āĻ { āĻĒāĻžāĻŦāϞāĻŋāĻ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻā§āϝāĻžāĻāĻĄ āĻŽā§āĻāύ(āϏā§āĻā§āϰāĻŋāĻ[] āĻāϰā§āĻāϏ) { Helper.run(); } } Helper.java: āĻā§āϞāĻžāϏ āĻšā§āϞā§āĻĒāĻžāϰ { static void run() { System.out.println("āĻšā§āϝāĻžāϞā§!"); } }
āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, "Prog.java" āĻāĻŦāĻ "Helper.java" āĻĻā§āĻāĻŋ āĻĢāĻžāĻāϞ āϏāĻŽāύā§āĻŦāĻŋāϤ āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻāĻāύ "java Prog.java" āĻāĻžāϞāĻžāύ⧠āϝāĻĨā§āώā§āĻ, āϝāĻž āĻĒā§āϰāĻ āĻā§āϞāĻžāϏ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻŦā§, āĻšā§āϞā§āĻĒāĻžāϰ āĻā§āϞāĻžāϏā§āϰ āĻāĻāĻāĻŋ āϰā§āĻĢāĻžāϰā§āύā§āϏ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāĻŦā§, āĻšā§āϞā§āĻĒāĻžāϰ āĻĢāĻžāĻāϞāĻāĻŋ āĻā§āĻāĻā§ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰā§āύ āĻāĻŦāĻ āĻŽā§āϞ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧠āĻāϞ āĻāϰā§āύāĨ¤
- āϏā§āĻā§āϰāĻŋāĻ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϏā§āĻā§āϰāĻŋāĻ āϞāĻŋāĻāĻžāϰā§āϞ āĻāĻŦāĻ āĻā§āĻā§āϏāĻ āĻŦā§āϞāĻ āĻāĻžāĻĄāĻŧāĻžāĻ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āϏā§āĻā§āϰāĻŋāĻ āĻā§āĻŽāĻĒā§āϞā§āĻāĻā§āϞāĻŋ āĻāĻĒāύāĻžāĻā§ + āĻ āĻĒāĻžāϰā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰā§āĻ āĻāĻŖāύāĻž āĻāϰāĻž āĻāĻā§āϏāĻĒā§āϰā§āĻļāύ āĻāĻŦāĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞā§āϰ āϏāĻžāĻĨā§ āĻĒāĻžāĻ ā§āϝ āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ \{..} āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻ āĻāĻŋāĻŦā§āϝāĻā§āϤāĻŋāϰ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āĻšāϝāĻŧ, āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāĻŋāϤ āĻŽāĻžāύāĻā§āϞāĻŋāϰ āϏāĻ āĻŋāĻāϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻŦāĻŋāĻļā§āώ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰāĻā§āϞāĻŋ āϏāĻāϝā§āĻā§āϤ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, SQL āĻāĻā§āĻāĻŋāύ SQL āĻā§āĻĄā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāĻŋāϤ āĻŽāĻžāύāĻā§āϞāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻāĻāĻŋ java.sql.Statement āĻ āĻŦāĻā§āĻā§āĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§, āϝāĻāύ JSON āĻĒā§āϰāϏā§āϏāϰ JSON āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύā§āϰ āϏāĻ āĻŋāĻāϤāĻž āύāĻŋāϰā§āĻā§āώāĻŖ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻāĻŋ JsonNode āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ āϏā§āĻā§āϰāĻŋāĻ āĻā§āϝā§āϝāĻŧāĻžāϰ⧠= "āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ * āĻŦā§āϝāĻā§āϤāĻŋ āĻĨā§āĻā§ āĻĒāĻŋ āĻā§āĻĨāĻžāϝāĻŧ āĻĒāĻŋāĨ¤" + āϏāĻŽā§āĻĒāϤā§āϤāĻŋ + " = '" + āĻŽāĻžāύ + "'"; // āĻāĻŋāϞ āϏā§āĻā§āĻāĻŽā§āύā§āĻ āĻā§āϝā§āϝāĻŧāĻžāϰ⧠= āĻāϏāĻāĻŋāĻāĻāϞāĨ¤""""āύāĻŋāϰā§āĻŦāĻžāĻāύ * FROM Person p WHERE p.\{property} = '\{value}'"""; // āĻšāϝāĻŧā§ āĻā§āĻā§
- āĻā§āĻā§āĻāϰ āĻāĻĒāĻŋāĻāĻ-āĻāϰ āĻāĻāĻāĻŋ āϏāĻĒā§āϤāĻŽ āĻĒā§āϰāĻŋāĻāĻŋāĻ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āĻā§āĻā§āĻāϰ āĻāĻŖāύāĻžāϰ āĻĢāĻžāĻāĻļāύ āĻĒā§āϰāĻĻāĻžāύ āĻāϰ⧠āϝāĻž x86_64 āĻāĻŦāĻ AArch64 āĻĒā§āϰāϏā§āϏāϰ⧠āĻā§āĻā§āĻāϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻā§āĻāĻžāϞāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ āĻāĻāĻžāϧāĻŋāĻ āĻŽāĻžāύ (SIMD) āϤ⧠āĻāĻāĻ āϏāĻžāĻĨā§ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤ āϏā§āĻā§āϞāĻžāϰ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒāĻā§āϞāĻŋāϰ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ-āĻā§āĻā§āĻāϰāĻžāĻāĻā§āĻļāύā§āϰ āĻāύā§āϝ HotSpot JIT āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ⧠āĻĒā§āϰāĻĻāϤā§āϤ āĻā§āώāĻŽāϤāĻžāĻā§āϞāĻŋāϰ āĻŦāĻŋāĻĒāϰā§āϤā§, āύāϤā§āύ API āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻĄā§āĻāĻž āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖā§āϰ āĻāύā§āϝ āϏā§āĻĒāώā§āĻāĻāĻžāĻŦā§ āĻā§āĻā§āĻāϰāĻžāĻāĻā§āĻļāύ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ āĻāϰ⧠āϤā§āϞā§āĨ¤
- āĻŦāϰā§āϧāĻŋāϤ āϏā§āĻā§āϰāĻŋāĻŽ API-āĻāϰ āĻāĻāĻāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āϝāĻž āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻŽāϧā§āϝāĻŦāϰā§āϤ⧠āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒāĻā§āϞāĻŋāĻā§ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāϤ⧠āϏāĻŽāϰā§āĻĨāύ āĻāϰā§, āϝāĻž āĻāĻŽāύ āĻā§āώā§āϤā§āϰ⧠āĻāĻžāϰā§āϝāĻāϰ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝā§āĻāĻžāύ⧠āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻ āύā§āϤāϰā§āύāĻŋāϰā§āĻŽāĻŋāϤ āĻŽāϧā§āϝāĻŦāϰā§āϤ⧠āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒāĻā§āϞāĻŋ āĻĒāĻāύā§āĻĻāϏāĻ āĻĄā§āĻāĻž āϰā§āĻĒāĻžāύā§āϤāϰā§āϰ āĻāύā§āϝ āϝāĻĨā§āώā§āĻ āύāϝāĻŧ⧎ āύā§āĻāĻŋāĻ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰāϰāĻž āύāϤā§āύ āĻāύā§āĻāĻžāϰāĻŽāĻŋāĻĄāĻŋāϝāĻŧā§āĻ āĻ āĻĒāĻžāϰā§āĻļāύ Stream::gather(Gatherer) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻāϝā§āĻā§āϤ āĻĨāĻžāĻā§, āϝāĻž āϤāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰ⧠āϏā§āĻā§āϰāĻŋāĻŽ āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞāĻŋāĻā§ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰā§āĨ¤ jshell> Stream.of(1,2,3,4,5,6,7,8,9) āϏāĻāĻā§āϰāĻš āĻāϰā§āύ (āύāϤā§āύ WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [ā§Ē, ā§Ģ, ā§Ŧ], [ā§, ā§Ž, ⧝]]
- āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āĻĄ āĻāύāĻāĻžāϰā§āύā§āϏāĻŋāϰ āĻāύā§āϝ āĻĒāϰā§āĻā§āώāĻžāĻŽā§āϞāĻ API-āĻāϰ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϏāĻāϏā§āĻāϰāĻŖ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻāĻāĻ āĻŦā§āϞāĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĨā§āϰā§āĻĄā§ āϏāĻŽā§āĻĒāĻžāĻĻāĻŋāϤ āĻāĻāĻžāϧāĻŋāĻ āĻāĻžāĻ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻŦāĻšā§-āĻĨā§āϰā§āĻĄā§āĻĄ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋāϰ āĻŦāĻŋāĻāĻžāĻļāĻā§ āϏāĻšāĻ āĻāϰā§āĨ¤
- āĻ āύā§āϤāϰā§āύāĻŋāĻšāĻŋāϤāĻāĻžāĻŦā§ āĻā§āώāĻŋāϤ āĻā§āϞāĻžāϏ āĻāĻŦāĻ "āĻĒā§āϰāϧāĻžāύ" āĻĒāĻĻā§āϧāϤāĻŋāϰ āύāĻžāĻŽāĻŦāĻŋāĻšā§āύ āĻĻā§āώā§āĻāĻžāύā§āϤāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻĒāĻžāĻŦāϞāĻŋāĻ/āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻā§āώāĻŖāĻž, āĻāϰā§āĻā§āĻŽā§āύā§āĻā§āϰ āĻ ā§āϝāĻžāϰ⧠āĻĒāĻžāϏ āĻāϰā§, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏ āĻā§āώāĻŖāĻžāϰ āϏāĻžāĻĨā§ āϝā§āĻā§āϤ āĻ āύā§āϝāĻžāύā§āϝ āϏāϤā§āϤā§āĻŦāĻžāĻā§āϞāĻŋāĻā§ āĻāĻžāĻĄāĻŧ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āĨ¤ // āĻāĻŋāϞ āĻĒāĻžāĻŦāϞāĻŋāĻ āĻā§āϞāĻžāϏ HelloWorld { āĻĒāĻžāĻŦāϞāĻŋāĻ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻā§āϝāĻžāĻāĻĄ āĻŽā§āĻāύ(āϏā§āĻā§āϰāĻŋāĻ[] args) { System.out.println("āĻšā§āϝāĻžāϞ⧠āĻāϝāĻŧāĻžāϰā§āϞā§āĻĄ!"); } } // āĻāĻāύ āĻāĻĒāύāĻŋ main() { System.out.println("āĻšā§āϝāĻžāϞā§, āĻāϝāĻŧāĻžāϰā§āϞā§āĻĄ!") āĻŦāĻžāϤāĻŋāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ; }
- āϏā§āĻā§āĻĒāĻĄ āĻā§āϝāĻžāϞā§āĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĒā§āϰā§āĻŦāϰā§āĻĒ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻžāϤ⧠āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϝāĻŧ āĻĄā§āĻāĻž āĻĨā§āϰā§āĻĄ āĻā§āĻĄāĻŧā§ āĻāĻžāĻ āĻāϰāĻž āϝāĻžāϝāĻŧ āĻāĻŦāĻ āĻāĻžāĻāϞā§āĻĄ āĻĨā§āϰā§āĻĄāĻā§āϞāĻŋāϰ āĻŽāϧā§āϝ⧠āĻĻāĻā§āώāϤāĻžāϰ āϏāĻžāĻĨā§ āĻĄā§āĻāĻž āĻŦāĻŋāύāĻŋāĻŽāϝāĻŧ āĻāϰāĻž āĻšāϝāĻŧ (āĻŽāĻžāύāĻā§āϞāĻŋ āĻāϤā§āϤāϰāĻžāϧāĻŋāĻāĻžāϰāϏā§āϤā§āϰ⧠āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ)āĨ¤ āĻĨā§āϰā§āĻĄ-āϞā§āĻāĻžāϞ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻŽā§āĻāĻžāύāĻŋāĻāĻŽ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻžāϰ āĻāύā§āϝ āϏā§āĻā§āĻĒāĻĄ āĻā§āϝāĻžāϞ⧠āϤā§āϰāĻŋ āĻāϰāĻž āĻšāĻā§āĻā§ āĻāĻŦāĻ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āϏāĻāĻā§āϝāĻ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻĨā§āϰā§āĻĄ (āĻšāĻžāĻāĻžāϰ āĻŦāĻž āϞāĻā§āώ āϞāĻā§āώ āĻĨā§āϰā§āĻĄ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāϰāĻ āĻĻāĻā§āώāĨ¤ āϏā§āĻā§āĻĒāĻĄ āĻā§āϝāĻžāϞ⧠āĻāĻŦāĻ āĻĨā§āϰā§āĻĄ-āϞā§āĻāĻžāϞ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞā§āϰ āĻŽāϧā§āϝ⧠āĻĒā§āϰāϧāĻžāύ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻšāϞ āϝ⧠āĻāĻā§āϰāĻā§āϞāĻŋ āĻāĻāĻŦāĻžāϰ āϞā§āĻāĻž āĻšāϝāĻŧ, āĻāĻŦāĻŋāώā§āϝāϤ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āϝāĻžāϝāĻŧ āύāĻž āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĨā§āϰā§āĻĄ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧāĻāĻžāϞā§āϰ āĻāύā§āϝ āĻāĻĒāϞāĻŦā§āϧ āĻĨāĻžāĻā§āĨ¤
- āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻāĻŦāϰā§āĻāύāĻž āϏāĻāĻā§āϰāĻšāĻāĻžāϰ⧠āĻŦāϏā§āϤā§āϰ āĻŦāĻĄāĻŧ āĻ ā§āϝāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻāύā§āύāϤ āĻāϰā§āĻā§āĨ¤ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ āĻāĻŋāĻā§ āĻĒāϰā§āĻā§āώāĻžāϝāĻŧ āĻŦāϏā§āϤā§āϰ āĻŦā§āĻšā§ āĻ ā§āϝāĻžāϰā§āϰ āϏāĻžāĻĨā§ 20% āĻĻā§āĻŦāĻžāϰāĻž āĻāĻāĻāĻŋ āĻŦāϏā§āϤā§āϰ āĻāύā§āϝ āĻ āύā§āϏāύā§āϧāĻžāύ āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāĻā§ āĻŦāĻŋāϞāĻŽā§āĻŦ āĻāĻŽāĻžāϤ⧠āϏāĻŽā§āĻāĻŦ āĻāϰā§āĻā§āĨ¤
āĻāĻĒāϰāύā§āϤā§, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻā§āϰāĻžāĻĢāĻŋāĻāĻžāϞ āĻāύā§āĻāĻžāϰāĻĢā§āϏ JavaFX 22 āĻĻāĻŋāϝāĻŧā§ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§ āĻāĻāĻāĻŋ āĻāĻĒāĻĄā§āĻā§āϰ āĻĒā§āϰāĻāĻžāĻļāύāĻž āύā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāϤā§āϏ: opennet.ru
