JavaRush /ื‘ืœื•ื’ Java /Random-HE /ืงื•ื“ ืžื›ื•ื ื” ื•ืงื•ื“ ื‘ืชื™ื: ื‘ืื™ื–ื• ืฉืคื” ืžื“ื‘ืจืช ื”ืชื•ื›ื ื™ืช ืฉืœืš?

ืงื•ื“ ืžื›ื•ื ื” ื•ืงื•ื“ ื‘ืชื™ื: ื‘ืื™ื–ื• ืฉืคื” ืžื“ื‘ืจืช ื”ืชื•ื›ื ื™ืช ืฉืœืš?

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ืœืืœื” ืฉืจืง ืžืชื—ื™ืœื™ื ืœื”ื›ื™ืจ ืืช Java ื™ืฉ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืœื‘ื•ืœ ืœื’ื‘ื™ ื”ืžื•ืฉื’ื™ื ืฉืœ ืงื•ื“ ืžื›ื•ื ื” ื•ืงื•ื“ ื‘ืชื™ื . ืžื” ื”ื? ืžื”ื ื”ื”ื‘ื“ืœื™ื? ื‘ื”ืขืจื” ืงืฆืจื”, ื ื ืกื” ืœืชืืจ ืืช ืชื›ื•ื ื•ืชื™ื”ื ื‘ืฆื•ืจื” ืคืฉื•ื˜ื” ื•ื‘ืจื•ืจื” ื›ื›ืœ ื”ืืคืฉืจ ืขืœ ืžื ืช ืœืกื’ื•ืจ ืืช ื”ื ื•ืฉื ื”ื–ื” ืื—ืช ื•ืœืชืžื™ื“.
ืงื•ื“ ืžื›ื•ื ื” ื•ืงื•ื“ ื‘ืชื™ื: ื‘ืื™ื–ื• ืฉืคื” ืžื“ื‘ืจืช ื”ืชื•ื›ื ื™ืช ืฉืœืš?  - 1

ืงื•ื“ ื”ืžื›ื•ื ื”

ื”ืžืขื‘ื“ ื”ื•ื, ื‘ืžื”ื•ืชื•, ืžื—ืฉื‘ื•ืŸ ืžื•ืจื›ื‘ ื•ืžืชืงื“ื ืžืื•ื“. ื™ืฉ ืœื• ืžื™ืงื•ืžื™ ื–ื™ื›ืจื•ืŸ ืจื‘ื™ื (ื”ื ืงืจืื™ื ืื•ื’ืจื™ื) ืฉืขืœื™ื”ื ื•ื‘ื™ื ื™ื”ื ืžืชื‘ืฆืขื•ืช ืคืขื•ืœื•ืช ืžืชืžื˜ื™ื•ืช ื•ื‘ื™ื™ื˜ื™ื ืฉื•ื ื•ืช. ืงื•ื“ ืžื›ื•ื ื” ื”ื•ื ื‘ื“ื™ื•ืง ืชื™ืื•ืจ ืฉืœ ืจืฆืฃ ื”ืคืขื•ืœื•ืช ื•ืžืขืจืš ื”ื ืชื•ื ื™ื ื”ืžืขื•ืจื‘ื™ื. ืœืžืขืฉื”, ื–ื• ื”ืฉืคื” ื”ื™ื—ื™ื“ื” ืฉื”ืžืขื‘ื“ ืฉืœ ื”ืžื—ืฉื‘ ืฉืœืš ืžื‘ื™ืŸ.

ืื™ ื”ืชืืžื” ืžื•ืœื“ืช

ื™ืชืจื” ืžื›ืš, ืœื ื›ืœ ื”ืžืขื‘ื“ื™ื "ืžื“ื‘ืจื™ื" ื‘ืื•ืชื” ืฉืคื”. ื™ืฉื ื ื”ื‘ื“ืœื™ื ืœื ืจืง ื‘ื™ืŸ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช CISC ื•- RISC , ืืœื ื’ื ื‘ืชื•ืš ื”"ืžื—ื ื•ืช" ื”ืœืœื•.

CISC (Complex Instruction Set Computing) ื”ื•ื ืชืคื™ืกื” ืฉืœ ืขื™ืฆื•ื‘ ืžืขื‘ื“ ื”ืžืชืืคื™ื™ืŸ ื‘ืžืขืจืš ื”ืžืืคื™ื™ื ื™ื ื”ื‘ื:

  • ืคืงื•ื“ื•ืช ืจื‘ื•ืช, ืฉื•ื ื•ืช ื‘ืื•ืจื›ืŸ;
  • ืžืฆื‘ื™ ืคื ื™ื™ื” ืจื‘ื™ื;
  • ืงื™ื“ื•ื“ ื”ื•ืจืื•ืช ืžื•ืจื›ื‘.
RISC (Reduced Instruction Set Computing) - ืžืขื‘ื“ ืขื ืขืจื›ืช ื”ื•ืจืื•ืช ืžื•ืคื—ืชืช. ื”ืคืงื•ื“ื•ืช ื”ืŸ ืžืื•ืชื• ืคื•ืจืžื˜, ืงืฆืจื•ืช, ืขื ืงื™ื“ื•ื“ ืคืฉื•ื˜.
ื“ื•ืจื•ืช ื—ื“ืฉื™ื ืฉืœ ืžืขื‘ื“ื™ื ืžืฆื™ื’ื™ื ืกื˜ื™ื ื ื•ืกืคื™ื ืฉืœ ื”ื•ืจืื•ืช ืฉืคืฉื•ื˜ ืœื ื™ื“ื•ืขื•ืช ืœื“ื’ืžื™ื ืžื”ื“ื•ืจ ื”ื™ืฉืŸ. ื‘ื’ืœืœ ื–ื”, ืชื•ื›ื ื™ื•ืช ื”ื™ื“ื•ืจ ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจื” ืื—ืช (ืื• ื“ื•ืจ ืื—ื“ ืฉืœ ืžืขื‘ื“ื™ื) ืื™ื ืŸ ื™ื›ื•ืœื•ืช ืœืคืขื•ืœ ืขืœ ื—ื•ืžืจื” ืื—ืจืช. ื›ืœ ื–ื” ืžืืœืฅ ืื•ืชื ื• ืœื”ืจื›ื™ื‘ ืžื—ื“ืฉ ืชื•ื›ื ื™ื•ืช ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉื”ืŸ ืคื•ืขืœื•ืช ืขืœ ืžื—ืฉื‘ื™ื ืื—ืจื™ื. ืขื ื–ืืช, ืขืœื™ืš ืœื‘ืฆืข ืงื•ืžืคื™ืœืฆื™ื” ืžื—ื“ืฉ ืœื ืจืง ื‘ื’ืœืœ ืžืขื‘ื“ื™ื, ืืœื ื’ื ื‘ื’ืœืœ ื”ื‘ื“ืœื™ื ื‘ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ืชื•ื›ื ื™ื•ืช ื•ืžืขืจื›ืช ื”ื”ืคืขืœื”. ื‘ื’ืœืœื ืื™ ืืคืฉืจ ืœื”ืคืขื™ืœ ืชื•ื›ื ื™ืช "ื—ืœื•ื ื•ืช" ืชื—ืช ืœื™ื ื•ืงืก, ื•ืชื•ื›ื ื™ืช "ืœื™ื ื•ืงืก" ืชื—ืช ื—ืœื•ื ื•ืช.

Bytecode

Bytecode ื“ื•ืžื” ื‘ืžื•ื‘ื ื™ื ืจื‘ื™ื ืœืงื•ื“ ืžื›ื•ื ื”, ืจืง ืฉื”ื•ื ืžืฉืชืžืฉ ื‘ืกื˜ ืฉืœ ื”ื•ืจืื•ืช ืœื ืžืžืขื‘ื“ ืืžื™ืชื™, ืืœื ืžืžืขื‘ื“ ื•ื™ืจื˜ื•ืืœื™. ื™ืชืจื” ืžื›ืš, ื”ื•ื ืขืฉื•ื™ ืœื›ืœื•ืœ ืงื˜ืขื™ื ื”ืžืชืžืงื“ื™ื ื‘ืฉื™ืžื•ืฉ ื‘ืžื”ื“ืจ JIT , ืืฉืจ ืžื™ื™ืขืœ ืืช ื‘ื™ืฆื•ืข ื”ืคืงื•ื“ื•ืช ืขื‘ื•ืจ ื”ืžืขื‘ื“ ื”ืืžื™ืชื™ ืขืœื™ื• ืคื•ืขืœืช ื”ืชื•ื›ื ื™ืช.
ืงื•ืžืคื™ืœืฆื™ื” JIT (ืงื•ืžืคื™ืœืฆื™ื” ื‘ื“ื™ื•ืง ื‘ื–ืžืŸ, ืงื•ืžืคื™ืœืฆื™ื” ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”) ืื• ืงื•ืžืคื™ืœืฆื™ื” ื“ื™ื ืžื™ืช (ืชืจื’ื•ื ื“ื™ื ืžื™) ื”ื™ื ื˜ื›ื ื•ืœื•ื’ื™ื” ืœื”ื’ื‘ืจืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืžืขืจื›ื•ืช ืชื•ื›ื ื” ื”ืžืฉืชืžืฉื•ืช ื‘-bytecode ืขืœ ื™ื“ื™ ื”ื™ื“ื•ืจ ืฉืœ bytecode ืœืงื•ื“ ืžื›ื•ื ื” ืื• ืœืคื•ืจืžื˜ ืื—ืจ ื‘ืื•ืคืŸ ื™ืฉื™ืจ ืชื•ืš ื›ื“ื™. ื”ืชื•ื›ื ื™ืช ืคื•ืขืœืช. "ืจืฉืžื™ืช" ื‘ื’'ืื•ื•ื” ืขื“ ื’ืจืกื” 9 ื”ื™ื” ืจืง โ€‹โ€‹ืžื”ื“ืจ JIT. ื‘-Java 9, ื”ื•ืคื™ืข ืžื”ื“ืจ ื ื•ืกืฃ, ื•ื”ื•ื ืžืงืžืคืœ ืžื‘ืขื•ื“ ืžื•ืขื“ (AoT). ืชื›ื•ื ื” ื–ื• ืžืืคืฉืจืช ืงื•ืžืคื™ืœืฆื™ื” ืฉืœ ืžื—ืœืงื•ืช Java ืœืงื•ื“ ืžืงื•ืจื™ ืœืคื ื™ ื”ืคืขืœื” ืขืœ ืžื—ืฉื‘ ื•ื™ืจื˜ื•ืืœื™. ืชื›ื•ื ื” ื–ื• ื ื•ืขื“ื” ืœืฉืคืจ ืืช ื–ืžื ื™ ื”ื”ืคืขืœื” ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ืงื˜ื ื™ื ื•ื’ื“ื•ืœื™ื ื›ืื—ื“, ืขื ื”ืฉืคืขื” ืžื•ื’ื‘ืœืช ืขืœ ื‘ื™ืฆื•ืขื™ ืฉื™ื.
ืขื‘ื•ืจ ืžืขื‘ื“ื™ CISC , ื ื™ืชืŸ ืœืฉืœื‘ ื”ื•ืจืื•ืช ืžืกื•ื™ืžื•ืช ืœืžื‘ื ื™ื ืžื•ืจื›ื‘ื™ื ื™ื•ืชืจ ื”ื ืชืžื›ื™ื ืขืœ ื™ื“ื™ ื”ืžืขื‘ื“, ื•ืขื‘ื•ืจ RISC , ืœื”ื™ืคืš, ื ื™ืชืŸ ืœืคืจืง ืื•ืชืŸ ืœืจืฆืคื™ื ืคืฉื•ื˜ื™ื ื™ื•ืชืจ ืฉืœ ื”ื•ืจืื•ืช.

ื’ื ืžืขืจื›ืช ื”ืคืขืœื” ื•ื™ืจื˜ื•ืืœื™ืช

ืขื ื–ืืช, ืงื•ื“ ื‘ืชื™ื ืžื›ื™ืœ ืœื ืจืง ื”ื•ืจืื•ืช ืžืขื‘ื“. ื”ื•ื ืžื›ื™ืœ ื’ื ื”ื™ื’ื™ื•ืŸ ืœืื™ื ื˜ืจืืงืฆื™ื” ืขื ืžืขืจื›ืช ื”ืคืขืœื” ื•ื™ืจื˜ื•ืืœื™ืช, ืžื” ืฉื”ื•ืคืš ืืช ื”ืชื ื”ื’ื•ืช ื”ืืคืœื™ืงืฆื™ื” ืœื‘ืœืชื™ ืชืœื•ื™ื” ื‘ืžืขืจื›ืช ื”ื”ืคืขืœื” ื”ืžืฉืžืฉืช ื‘ืžื—ืฉื‘. ื–ื” ื ืจืื” ื‘ื‘ื™ืจื•ืจ ื‘- JVM , ืฉื‘ื• ืขื‘ื•ื“ื” ืขื ืงืจื™ืื•ืช ืžืขืจื›ืช ื•- GUI ื”ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืœืชื™ ืชืœื•ื™ื™ื ื‘ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉื‘ื” ื”ืชื•ื›ื ื™ืช ืคื•ืขืœืช. ื‘ื’ื“ื•ืœ, ื”-JVM ืžื—ืงื” ื”ืฉืงื” ืฉืœ ืชื”ืœื™ืš ืชื•ื›ื ื™ืช, ื‘ื ื™ื’ื•ื“ ืœืคืชืจื•ื ื•ืช ื›ืžื• Virtual Box , ืฉื™ื•ืฆืจื™ื ืจืง ืžืขืจื›ืช/ื—ื•ืžืจื” ื•ื™ืจื˜ื•ืืœื™ืช.

ื”ืื JVM ื”ื™ื—ื™ื“ ื›ื–ื”?

ื‘ื”ื—ืœื˜ ืœื. ืื•ืชื• DotNet CLI ื”ื•ื ื’ื ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช, ื”ืžืฉืžืฉืช ืœืจื•ื‘ ื‘ืžื—ืฉื‘ื™ื ืฉื‘ื”ื ืคื•ืขืœ Windows ืขื ืžืขื‘ื“ื™ื ืชื•ืืžื™ื x86. ืขื ื–ืืช, ื™ืฉ ืืช ื”ื™ื™ืฉื•ื ืฉืœื• ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืื—ืจื•ืช: ืืคืœื™ืงืฆื™ื•ืช ืขื‘ื•ืจื• ื—ื™ื™ื‘ื•ืช ืœืคืขื•ืœ ืขืœ Windows RT ื”ืคื•ืขืœื•ืช ืขืœ ืžืขื‘ื“ื™ื ืชื•ืืžื™ื ARM (RISC) , ืื• ืฉืชื•ื›ืœ ืœื”ืคืขื™ืœ ืื•ืชื ืขืœ Linux/OSX ื‘ืกื‘ื™ื‘ืช Mono , ืฉื”ื™ื ืฆื“ ืฉืœื™ืฉื™ (ื•ืœื›ืŸ ืœื ืชื•ืื ืœื—ืœื•ื˜ื™ืŸ) ื™ื™ืฉื•ื ืฉืœ DotNet ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช ืืœื”. ืื– ื”ืคืœื˜ืคื•ืจืžื” ื”ื–ื•, ื›ืžื• ื”- JVM , ืคื•ืขืœืช ืขืœ ืžืขื‘ื“ื™ื ืฉื•ื ื™ื ื•ืžืขืจื›ื•ืช ื”ืคืขืœื” ืฉื•ื ื•ืช. ื™ืฉ ืขื•ื“ ื”ืจื‘ื” ืคืชืจื•ื ื•ืช ื“ื•ืžื™ื (ื™ืฉื ื™ื ื•ื’ื ื—ื“ืฉื™ื): LLVM , Flash SWF ื•ืื—ืจื™ื. ืœืฉืคื•ืช ืชื›ื ื•ืช ืžืกื•ื™ืžื•ืช ื™ืฉ ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืžืฉืœื”ืŸ. ืœื“ื•ื’ืžื”, CPython ืžืจื›ื™ื‘ ืžืงื•ืจื•ืช PY ืœืชื•ืš ืงื•ื‘ืฆื™ PYC - ืงื•ื“ ื‘ืชื™ื ื”ื™ื“ื•ืจ ืฉืžื•ื›ืŸ ืœื”ืคืขืœื” ื‘- PVM . ืื• ืฉื™ืฉ ื“ื•ื’ืžื” ื”ืจื‘ื” ื™ื•ืชืจ ื™ืฉื ื” - ื ื™ืชืŸ ืœื”ืจื›ื™ื‘ ืืช Lisp ืœืงื‘ืฆื™ FASL (Fast Load). ืœืžืขืฉื”, ื”ื ืžื›ื™ืœื™ื ืขืฅ AST ืฉื ื‘ื ื” ืขืœ ื™ื“ื™ ื”ืžื—ื•ืœืœ ืžืงื•ื“ ื”ืžืงื•ืจ. ื ื™ืชืŸ ืœืงืจื•ื ื•ืœื”ืคืขื™ืœ ืงื‘ืฆื™ื ืืœื” ืขืœ ื™ื“ื™ ืžืชื•ืจื’ืžืŸ Lisp ื‘ืคืœื˜ืคื•ืจืžื•ืช ืฉื•ื ื•ืช, ืื• ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ื“ื™ ืœื™ืฆื•ืจ ืงื•ื“ ืžื›ื•ื ื” ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ื—ื•ืžืจื” ื”ื ืžืฆืืช ื‘ืฉื™ืžื•ืฉ ื›ืขืช.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION