▀τ√Ω Java╘ [1] - ²≥ε φεΓ√Θ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√Θ τ√Ω ∩≡επ≡α∞∞Φ≡εΓαφΦ , ±ετΣαφφ√Θ ⌠Φ≡∞εΘ Sun Σδ ≡ατ≡αßε≥ΩΦ ∩≡επ≡α∞∞, ≡α±∩≡ε±≥≡αφ σ∞√⌡ ∩ε ±σ≥Φ Internet [2]. ╤Φ±≥σ∞α ∩≡επ≡α∞∞Φ≡εΓαφΦ Java ∩ετΓεδ σ≥ Φ±∩εδⁿτεΓα≥ⁿ World Wide Web (WWW) Σδ ≡α±∩≡ε±≥≡αφσφΦ φσßεδⁿ°Φ⌡ Φφ≥σ≡αΩ≥ΦΓφ√⌡ ∩≡ΦΩδαΣφ√⌡ ∩≡επ≡α∞∞ (α∩∩δσ≥εΓ), Ωε≥ε≡√σ ≡ατ∞σ∙α■≥± φα ±σ≡Γσ≡α⌡ Internet, ≥≡αφ±∩ε≡≥Φ≡≤■≥± ΩδΦσφ≥≤ ∩ε ±σ≥Φ (≥ε≈φε ≥αΩ µσ, ΩαΩ Ωα≡≥ΦφΩΦ ΦδΦ τΓ≤ΩεΓ√σ ⌠αΘδ√), αΓ≥ε∞α≥Φ≈σ±ΩΦ ≤±≥αφαΓδΦΓα■≥± Φ τα∩≤±Ωα■≥± φα ∞σ±≥σ, ΩαΩ ≈α±≥ⁿ ΣεΩ≤∞σφ≥α WWW. ╧≡Φ ²≥ε∞ α∩∩δσ≥ Φ∞σσ≥ Γσ±ⁿ∞α επ≡αφΦ≈σφφ√Θ Σε±≥≤∩ Ω ≡σ±≤≡±α∞ Ωε∞∩ⁿ■≥σ≡α ΩδΦσφ≥α, ≥αΩ ≈≥ε εφ ∞εµσ≥ ∩≡σΣε±≥αΓΦ≥ⁿ ∩≡εΦτΓεδⁿφ√Θ ∞≤δⁿ≥Φ∞σΣΦΘφ√Θ Φφ≥σ≡⌠σΘ± Φ Γ√∩εδφ ≥ⁿ ±δεµφ√σ Γ√≈Φ±δσφΦ , φσ ∩≡ΦΓφε± ∩≡Φ ²≥ε∞ ≡Φ±Ωα τα≡αµσφΦ ΓΦ≡≤±ε∞ ΦδΦ ∩ε≡≈Φ Σαφφ√⌡.
╤Φ±≥σ∞α ∩≡επ≡α∞∞Φ≡εΓαφΦ Java ∞εµσ≥ ±δ≤µΦ≥ⁿ ε±φεΓεΘ Σδ ±εΓ∞σ±≥φεΘ ≡ατ≡αßε≥ΩΦ ßεδⁿ°Φ⌡ ∩≡επ≡α∞∞φ√⌡ ±Φ±≥σ∞ ΩεδδσΩ≥ΦΓε∞ ≡ατ≡αßε≥≈ΦΩεΓ, ±Γ ταφφ√⌡ ∞σµΣ≤ ±εßεΘ ≥εδⁿΩε ≈σ≡στ WWW (εφΦ Φ τφαΩε∞√ ∞σµΣ≤ ±εßεΘ ∞επ≤≥ ß√≥ⁿ δΦ°ⁿ ταε≈φε, ≈σ≡στ e-mail, α ΩεπΣα εφΦ φαΩεφσ÷ ∩εΓ±≥≡σ≈α■≥± πΣσ-φΦß≤Σⁿ φα ∞σµΣ≤φα≡εΣφε∞ ±Φ∞∩ετΦ≤∞σ, Γ Φ⌡ αΩ≥ΦΓσ ≤µσ ∞εµσ≥ ß√≥ⁿ ±εΓ∞σ±≥φε ≡ατ≡αßε≥αφφα ∩≡επ≡α∞∞φα ±Φ±≥σ∞α). Java Φ WWW Γδ ■≥± ∩σ≡Γ√∞Φ ±Φ±≥σ∞α∞Φ, εßσ±∩σ≈ΦΓα■∙Φ∞Φ ≥αΩ≤■ Γετ∞εµφε±≥ⁿ, ∩ε²≥ε∞≤ Φ⌡ ΓφσΣ≡σφΦσ Φ ≡α±∩≡ε±≥≡αφσφΦσ ∞φεπΦσ ∩≡επ≡α∞∞Φ±≥√ ±∩≡αΓσΣδΦΓε φατ√Γα■≥ ≡σΓεδ■÷ΦσΘ Γ ≡ατ≡αßε≥Ωσ ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ . ▀±φε, ≈≥ε ΓσΣ≤∙≤■ ≡εδⁿ Γ εßσ±∩σ≈σφΦΦ ≤ΩαταφφεΘ Γετ∞εµφε±≥Φ Φπ≡ασ≥ Φ∞σφφε Java, ≥αΩ ΩαΩ Φ∞σφφε Java ∩ετΓεδ σ≥ ≡α±∩≡ε±≥≡αφ ≥ⁿ φσ ∩≡ε±≥ε ≥σΩ±≥√, α ≡αßε≥α■∙Φσ ∩≡επ≡α∞∞√ Φ Φ⌡ ⌠≡απ∞σφ≥√ (α∩∩δσ≥√) ∩ε WWW.
╬≥±■Σα ßεδⁿ°εΘ Φφ≥σ≡σ± Ω τ√Ω≤ Φ ±Φ±≥σ∞σ ∩≡επ≡α∞∞Φ≡εΓαφΦ Java ±ε ±≥ε≡εφ√ ß≤ΩΓαδⁿφε Γ±σ⌡ Ωα≥σπε≡ΦΘ ≡ατ≡αßε≥≈ΦΩεΓ Φ ∩εδⁿτεΓα≥σδσΘ ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ . ┬±σ ΓσΣ≤∙Φσ ⌠Φ≡∞√, ≡ατ≡αßα≥√Γα■∙Φσ Ωε∞∩ⁿ■≥σ≡φ≤■ α∩∩α≡α≥≤≡≤ Φ ∩≡επ≡α∞∞φεσ εßσ±∩σ≈σφΦσ (Φ IBM, Φ DEC, Φ Microsoft, ±∩Φ±εΩ ∞εµφε ∩≡εΣεδµα≥ⁿ ε≈σφⁿ Σεδπε) ε⌠Φ÷Φαδⁿφε εß· ΓΦδΦ ε ∩εΣΣσ≡µΩσ τ√Ωα Φ ±Φ±≥σ∞√ ∩≡επ≡α∞∞Φ≡εΓαφΦ Java. ┬±σ ≡α±∩≡ε±≥≡αφσφφ√σ Φφ±≥≡≤∞σφ≥αδⁿφ√σ ±Φ±≥σ∞√ ≤µσ ∩εΣΣσ≡µΦΓα■≥ ∩≡επ≡α∞∞Φ≡εΓαφΦσ φα Java. ┬ WWW ∞εµφε φαΘ≥Φ ±ε≥φΦ ≥√± ≈ ∩≤ßδΦΩα÷ΦΘ Φ ∩≡επ≡α∞∞φεΘ ∩≡εΣ≤Ω÷ΦΦ, ±Γ ταφφ√⌡ ± Java, Γ ≥ε∞ ≈Φ±δσ ±ΓεßεΣφε ≡α±∩≡ε±≥≡αφ σ∞α ±Φ±≥σ∞α ∩≡επ≡α∞∞Φ≡εΓαφΦ Java, ≡ατ≡αßε≥αφφα ⌠Φ≡∞εΘ Sun-Soft (φσΣαΓφε Φτ ²≥εΘ ⌠Φ≡∞√ Γ√ΣσδΦδα±ⁿ ±α∞ε±≥ε ≥σδⁿφα ⌠Φ≡∞α Java-Soft), α ≥αΩµσ ±ΓεßεΣφε ≡α±∩≡ε±≥≡αφ σ∞α ±Φ±≥σ∞α ∩≡επ≡α∞∞Φ≡εΓαφΦ GNU-Java, ≡ατ≡αßε≥αφφα FSF. ═α∩Φ±αφ√ Σσ± ≥ΩΦ ≤≈σßφ√⌡ ∩ε±εßΦΘ ∩ε Java (≈α±≥ⁿ Φτ φΦ⌡ ∩σ≡σΓσΣσφα φα ≡≤±±ΩΦΘ τ√Ω Φ ΦτΣαφα Γ φα°σΘ ±≥≡αφσ), ±≥α≥ⁿΦ Φ εßτε≡√ ∩ε τ√Ω≤ Java Φ σπε ∩≡Φ∞σφσφΦ ∞ ≡σπ≤δ ≡φε ∩≤ßδΦΩ≤■≥± Γ ±σ≡ⁿστφ√⌡ Φ ∩ε∩≤δ ≡φ√⌡ ∩≡επ≡α∞∞Φ±≥±ΩΦ⌡ µ≤≡φαδα⌡ Φ σµσφσΣσδⁿφΦΩα⌡.
╓σδⁿ ΣαφφεΘ ∩≤ßδΦΩα÷ΦΦ - ετφαΩε∞Φ≥ⁿ ≈Φ≥α≥σδσΘ ± ε±φεΓφ√∞Φ ±ΓεΘ±≥Γα∞Φ Φ ε±εßσφφε±≥ ∞Φ ±Φ±≥σ∞√ ∩≡επ≡α∞∞Φ≡εΓαφΦ Java Φ ∩εΩατα≥ⁿ, ΩαΩ ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ ∞φεπε≈Φ±δσφφ√σ Java-α∩∩δσ≥√, Σε±≥≤∩φ√σ Γ ±≡σΣσ Internet, Φ Σ≡≤πΦσ Γετ∞εµφε±≥Φ τ√Ωα Φ ±Φ±≥σ∞√ ∩≡επ≡α∞∞Φ≡εΓαφΦ Java Γ ±ΓεσΘ ∩εΓ±σΣφσΓφεΘ Σσ ≥σδⁿφε±≥Φ.
╤φα≈αδα ß≤Σσ≥ Σαφε Ω≡α≥Ωεσ ε∩Φ±αφΦσ ε±εßσφφε±≥σΘ
±Φφ≥αΩ±Φ±α Φ ±σ∞αφ≥ΦΩΦ Ωεφ±≥≡≤Ω÷ΦΘ τ√Ωα Java, Φ±∩εδⁿτ≤ Σδ ±≡αΓφσφΦ
Γ±σ∞ ⌡ε≡ε°ε ΦτΓσ±≥φ√Θ εß·σΩ≥φε-ε≡Φσφ≥Φ-
≡εΓαφφ√Θ τ√Ω C++. ┬φΦ∞αφΦσ ≈Φ≥α≥σδ ß≤Σσ≥ εß≡α∙σφε ≥εδⁿΩε φα
∩≡Φφ÷Φ∩Φαδⁿφ√σ ∞ε∞σφ≥√, ± ΣαδⁿφσΘ°Φ∞Φ ∩εΣ≡εßφε±≥ ∞Φ ∞εµφε ετφαΩε∞Φ≥ⁿ±
∩ε ε∩Φ±αφΦ■ τ√Ωα Φ Σ≡≤πΦ∞ ε±φεΓε∩εδαπα■∙Φ∞ ΣεΩ≤∞σφ≥α∞ ⌠Φ≡∞√ Sun
[1,3,4], α ≥αΩµσ ± ∩ε∞ε∙ⁿ■ ∞φεπε≈Φ±δσφφ√⌡ ≤≈σßφ√⌡ ∩ε±εßΦΘ Φ ≡≤ΩεΓεΣ±≥Γ
∩ε τ√Ω≤ Java (±∞., φα∩≡Φ∞σ≡, [5]).
╟α≥σ∞ ß≤Σσ≥ ε∩Φ±αφα ±Φ±≥σ∞α ∩≡επ≡α∞∞Φ≡εΓαφΦ τ√Ωα Java. ┬ σσ ±ε±≥αΓ Γ⌡εΣ ≥ ±δσΣ≤■∙Φσ Ωε∞∩εφσφ≥√:
┬ετ∞εµφε±≥Φ ±Φ±≥σ∞√ ∩≡επ≡α∞∞Φ≡εΓαφΦ τ√Ωα Java (Γ ≈α±≥φε±≥Φ, ≤≥ΦδΦ≥√ Φ φσΩε≥ε≡√σ ßΦßδΦε≥σ≈φ√σ Ωδα±±√) ß≤Σ≤≥ ∩≡εΣσ∞εφ±≥≡Φ≡εΓαφ√ φα ∩≡Φ∞σ≡σ ≡ατ≡αßε≥ΩΦ Φ Φ±∩εδⁿτεΓαφΦ φσ±ΩεδⁿΩΦ⌡ ∩≡ε±≥√⌡ α∩∩δσ≥εΓ, Σε±≥≤∩φ√⌡ ∩ε WWW.
▀τ√Ω Java Φ σπε εΩ≡≤µσφΦσ φσ∩≡σ≡√Γφε ≡ατΓΦΓα■≥± : ∩ε±≥ε φφε ∩ε Γδ ■≥± φεΓ√σ Φφ±≥≡≤∞σφ≥√, ∞φεπΦσ ±Φ±≥σ∞√ Φφ≥σπ≡Φ≡≤■≥± ± ±Φ±≥σ∞εΘ Java. ╨ατΓΦ≥Φσ∞ εΩ≡≤µσφΦ Java ταφΦ∞α■≥± π≡≤∩∩√ Γε Γ±σ⌡ ≤φΦΓσ≡±Φ≥σ≥α⌡, α ≥αΩµσ ∞ε∙φ√σ Ωε∞∩αφΦΦ (⌠Φ≡∞√), ≡ατ≡αßα≥√Γα■∙Φσ Ωε∞∩ⁿ■≥σ≡φ≤■ α∩∩α≡α≥≤≡≤ Φ ∩≡επ≡α∞∞φεσ εßσ±∩σ≈σφΦσ. ╧ε²≥ε∞≤ ε±φεΓφα ≈α±≥ⁿ ΣαφφεΘ ∩≤ßδΦΩα÷ΦΦ ∩ε±Γ ∙σφα ∩≡εßδσ∞α∞ ≡ατΓΦ≥Φ τ√Ωα Φ ±Φ±≥σ∞√ ∩≡επ≡α∞∞Φ≡εΓαφΦ Java. ═α ∩≡Φ∞σ≡σ Java ∞εµφε ∩≡ε±δσΣΦ≥ⁿ ΩαΩ τ√Ω, ∩σ≡Γεφα≈αδⁿφε ε≡Φσφ≥Φ≡εΓαφφ√Θ, Γ ε±φεΓφε∞, φα φα∩Φ±αφΦσ α∩∩δσ≥εΓ, ∩ε±≥σ∩σφφε ∩≡σΓ≡α∙ασ≥± Γ ∞ε∙φ√Θ ≤φΦΓσ≡±αδⁿφ√Θ τ√Ω ∩≡επ≡α∞∞Φ≡εΓαφΦ . ╨ατΓΦ≥Φσ εΩ≡≤µσφΦ Java φσ≥≡≤Σφε ∩≡ε±δσΣΦ≥ⁿ ∩ε ∞φεπε≈Φ±δσφφ√∞ ∩≤ßδΦΩα÷Φ ∞ Γ WWW, φε Φ∞σφφε Φ⌡ ∞φεπε≈Φ±δσφφε±≥ⁿ Σσδασ≥ ²≥≤ ταΣα≈≤ ΣεΓεδⁿφε ≥≡≤ΣφεΘ: ΓσΣⁿ φ≤µφε φσ ≥εδⁿΩε ≤±∩σΓα≥ⁿ ∩≡ε±∞ε≥≡σ≥ⁿ Γ±σ ²≥Φ, ∩ε≡εΘ ∩≡ε≥ΦΓε≡σ≈ΦΓ√σ, α ∩ε≡εΘ Φ ∩≡ε±≥ε ε°Φßε≈φ√σ ∩≤ßδΦΩα÷ΦΦ, φε Φ ±≤∞σ≥ⁿ ±Σσδα≥ⁿ ∩≡αΓΦδⁿφ√σ Γ√ΓεΣ√ ε ≥σφΣσφ÷Φ ⌡ ≡ατΓΦ≥Φ Java. ╬Σφα Φτ ∩ε∩√≥εΩ ≤δεΓΦ≥ⁿ ≥αΩΦσ ≥σφΣσφ÷ΦΦ Φ ±⌠ε≡∞≤δΦ≡εΓα≥ⁿ Φ⌡ ±Σσδαφα Γ ΣαφφεΘ ±≥α≥ⁿσ.
╬±φεΓφ√∞ ±ΓεΘ±≥Γε∞ α∩∩δσ≥εΓ Γδ σ≥± Γετ∞εµφε±≥ⁿ Γ√∩εδφ ≥ⁿ Φ⌡ φα ≡ατδΦ≈φ√⌡ ∩δα≥⌠ε≡∞α⌡ Φ Γ ≡ατδΦ≈φ√⌡ εΩ≡≤µσφΦ ⌡, φσ εΩατ√Γα Γ≡σΣφεπε ΓδΦ φΦ φα α∩∩α≡α≥≤≡≤, ∩≡επ≡α∞∞√ Φ Σαφφ√σ Φ⌡ ∩εδⁿτεΓα≥σδσΘ. ▀τ√Ω, ε≡Φσφ≥Φ≡εΓαφφ√Θ φα ∩≡επ≡α∞∞Φ≡εΓαφΦσ α∩∩δσ≥εΓ Σεδµσφ ∩≡σµΣσ Γ±σπε εßσ±∩σ≈ΦΓα≥ⁿ φαΣσµφε±≥ⁿ Φ ßστε∩α±φε±≥ⁿ. ▌≥επε δσπ≈σ Γ±σπε Σε±≥Φ≈ⁿ Γ Φφ≥σ≡∩≡σ≥Φ≡≤σ∞ε∞ τ√Ωσ, ⌡ε≥ Φφ≥σ≡∩≡σ≥α÷Φ , ΩαΩ ∩≡αΓΦδε, ΓσΣσ≥ Ω ±≤∙σ±≥ΓσφφεΘ ∩ε≥σ≡σ ²⌠⌠σΩ≥ΦΓφε±≥Φ ∩≡επ≡α∞∞√ (εφα Γ√∩εδφ σ≥± πε≡ατΣε ∞σΣδσφφσσ, ≈σ∞ ∞επδα ß√), ∩≡Φ≈σ∞ ²≥Φ ∩ε≥σ≡Φ ≡α±≥≤≥ (φσδΦφσΘφε!) ± ≡ε±≥ε∞ εß·σ∞α ∩≡επ≡α∞∞√ Φ εß·σ∞α εß≡αßα≥√Γασ∞√⌡ σ■ Σαφφ√⌡. ╧εΩα τ√Ω Φ±∩εδⁿτ≤σ≥± Σδ ≡ατ≡αßε≥ΩΦ ±≡αΓφΦ≥σδⁿφε φσßεδⁿ°Φ⌡ α∩∩δσ≥εΓ (φα∩≡Φ∞σ≡, α∩∩δσ≥α, Γ√ΓεΣ ∙σπε φα ²Ω≡αφ ≥σΩ≤∙σσ ±ε±≥ε φΦσ ≥αßδε α²≡ε∩ε≡≥α, ΦδΦ ßΦ≡µΦ, ΦδΦ ßα±Ωσ≥ßεδⁿφεπε ∞α≥≈α), ²≥Φ ∩ε≥σ≡Φ ∩≡ε±≥ε φσ τα∞σ≈α■≥± . ╤ετΣασ≥± Φδδ■τΦ , ≈≥ε ±Ωε≡ε Γεεß∙σ ∞εµφε ß≤Σσ≥ ≡σ°Φ≥ⁿ ∩≡εßδσ∞≤ ±ε±≥αΓδσφΦ φεΓ√⌡ ∩≡επ≡α∞∞ ∩≤≥σ∞ εß·σΣΦφσφΦ ("±°ΦΓαφΦ ") ≤µσ Φ∞σ■∙Φ⌡± Γ ±σ≥Φ α∩∩δσ≥εΓ. ┼±δΦ ±≥α≥ⁿ φα ≥αΩ≤■ ≥ε≈Ω≤ τ≡σφΦ , ≥ε Φφ≥σ≡∩≡σ≥Φ≡≤σ∞√Θ τ√Ω Γδ σ≥± φαΦßεδσσ σ±≥σ±≥Γσφφ√∞: ΓσΣⁿ ∩≡επ≡α∞∞α, ±ε±≥ε ∙α Φτ Γ√τεΓεΓ ßεδⁿ°επε ≈Φ±δα α∩∩δσ≥εΓ, Γ±σ ≡αΓφε Φφ≥σ≡∩≡σ≥Φ≡≤σ≥± . ╩ ±εµαδσφΦ■, ± ≡ε±≥ε∞ εß·σ∞α ≥αΩεΘ ∩≡επ≡α∞∞√ εφα Γεεß∙σ ∩σ≡σ±≥αφσ≥ Γ√∩εδφ ≥ⁿ± ΓΓΦΣ≤ φσ⌡Γα≥ΩΦ ≡σ±≤≡±εΓ, ΦδΦ ß≤Σσ≥ Γ√∩εδφ ≥ⁿ± φσ∩≡Φσ∞δσ∞ε Σεδπε. ╧ε²≥ε∞≤ Γ εΩ≡≤µσφΦΦ Java ε±≥≡ε ±≥εΦ≥ ∩≡εßδσ∞α ²⌠⌠σΩ≥ΦΓφε±≥Φ Java-∩≡επ≡α∞∞. └Γ≥ε≡√ τ√Ωα Java ∩≡σΣ≈≤Γ±≥ΓεΓαδΦ ΓετφΦΩφεΓσφΦσ ²≥εΘ ∩≡εßδσ∞√. ╬φΦ ΓΓσδΦ Γ τ√Ω δσπΩεΓσ±φ√σ ∩≡ε÷σ±±√ (≥≡²Σ√), εßσ±∩σ≈ΦΓ Φ⌡ ∩α≡αδδσδⁿφεσ Γ√∩εδφσφΦσ φα ∞φεπε∩≡ε÷σ±±ε≡φ√⌡ Ωε∞∩ⁿ■≥σ≡α⌡ (Ωε≥ε≡√⌡ ±≥αφεΓΦ≥± Γ±σ ßεδⁿ°σ), εφΦ ±Ωεφ±≥≡≤Φ≡εΓαδΦ Φφ≥σ≡∩≡σ≥α≥ε≡ τ√Ωα (JavaVM) ≥αΩΦ∞ εß≡ατε∞, ≈≥ε Γ Java-∩≡επ≡α∞∞≤ ∞εµφε ΓΩδ■≈α≥ⁿ ⌠≡απ∞σφ≥√, φα∩Φ±αφφ√σ φα Σ≡≤πΦ⌡ τ√Ωα⌡ Φ Γ√∩εδφ σ∞√σ Γ εß·σΩ≥φε∞ ΩεΣσ (native code) ±εε≥Γσ≥±≥Γ≤■∙σΘ ∩δα≥⌠ε≡∞√. ═ε, ΩαΩ ß≤Σσ≥ ∩εΩαταφε, ²≥Φ ±≡σΣ±≥Γα τ√Ωα Java φσ ≡σ°α■≥ ∩≡εßδσ∞√ ²⌠⌠σΩ≥ΦΓφε±≥Φ Γ ∩εδφεΘ ∞σ≡σ, ≥αΩ ΩαΩ ∩ε≥σ≡Φ, ±Γ ταφφ√σ ± Φφ≥σ≡∩≡σ≥α÷ΦσΘ φα∞φεπε ßεδⁿ°σ. ┬ ΣαφφεΘ ±≥α≥ⁿσ ß≤Σ≤≥ ≡α±±∞ε≥≡σφ√ ε±φεΓφ√σ ∩≤≥Φ ≡σ°σφΦ ∩≡εßδσ∞√ ²⌠⌠σΩ≥ΦΓφε±≥Φ ±Φ±≥σ∞√ Java.
╩αΩ ≤µσ ß√δε ε≥∞σ≈σφε, Java - εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√Θ τ√Ω. ▌≥ε Σαδε Γετ∞εµφε±≥ⁿ τα⌠ΦΩ±Φ≡εΓα≥ⁿ Σε±≥α≥ε≈φε Ωε∞∩αΩ≥φεσ Σ≡ε τ√Ωα, επ≡αφΦ≈ΦΓ σπε ±≡αΓφΦ≥σδⁿφε φσßεδⁿ°Φ∞ ≈Φ±δε∞ ≡ατδΦ≈φ√⌡ ±Φφ≥αΩ±Φ≈σ±ΩΦ⌡ Ωεφ±≥≡≤Ω÷ΦΘ, α ßεδⁿ°≤■ ≈α±≥ⁿ Γετ∞εµφε±≥σΘ τ√Ωα ΓΓεΣΦ≥ⁿ ± ∩ε∞ε∙ⁿ■ Ωδα±±εΓ. ╥αΩ, ≥≡²Σ√ ΓΩδ■≈σφ√ Γ τ√Ω ± ∩ε∞ε∙ⁿ■ Ωδα±±εΓ Thread Φ ThreadGroup. ┬ ΓΦΣσ Ωδα±±εΓ ≡σαδΦτεΓαφ√ Φ ≥αΩΦσ ßατεΓ√σ τ√ΩεΓ√σ ∩εφ ≥Φ , ΩαΩ ⌠≤φΩ÷ΦΦ εß≡αßε≥ΩΦ ±≥≡εΩ Φ εß≡αßε≥Ωα Φ±Ωδ■≈σφΦΘ. ╨ατΓΦ≥Φσ τ√Ωα Java ≥εµσ ΓσΣσ≥± ∩≤≥σ∞ ΓΩδ■≈σφΦ Γ φσπε φεΓ√⌡ Ωδα±±εΓ Φ ∩αΩσ≥εΓ (∩αΩσ≥√ τα∞σφ ■≥ Γ ±Φ±≥σ∞σ ∩≡επ≡α∞∞Φ≡εΓαφΦ Java ⌠αΘδ√-ταπεδεΓΩΦ εΩ≡≤µσφΦ C/C++, εΣφαΩε, Γ ε≥δΦ≈Φσ ε≥ ⌠αΘδεΓ-ταπεδεΓΩεΓ, ∩αΩσ≥√ ±εΣσ≡µα≥ ΩαΩ ±∩σ÷Φ⌠ΦΩα÷Φ■ Ωδα±±εΓ, ≥αΩ Φ Φ⌡ ≡σαδΦτα÷Φ■; ∩εΣ≡εßφσσ ε ∩αΩσ≥α⌡ ±∞. φΦµσ). ╥αΩεΘ ±∩ε±εß ≡α±°Φ≡σφΦ τ√Ωα ≤Σεßσφ ≥σ∞, ≈≥ε ±≥α≡√σ Ωε∞∩Φδ ≥ε≡√ ε±≥α■≥± ∩≡ΦπεΣφ√∞Φ Φ Σδ ≡α±°Φ≡σφφεπε τ√Ωα. ╠φεπΦσ φεΓ√σ ±ΓεΘ±≥Γα τ√Ωα, ΓΓσΣσφφ√σ Γ φσπε ≈σ≡στ φεΓ√σ Ωδα±±√ Φ ∩αΩσ≥√, ß≤Σ≤≥ ≡α±±∞ε≥≡σφ√ (ΦδΦ ⌡ε≥ ß√ ≤∩ε∞ φ≤≥√) φΦµσ. ┬ ≈α±≥φε±≥Φ, ß≤Σ≤≥ ≡α±±∞ε≥≡σφ√ ∩αΩσ≥√ GJL Φ SJL, εßσ±∩σ≈ΦΓα■∙Φσ φσΩε≥ε≡√σ ≤Σεßφ√σ Σδ ∩≡ΦδεµσφΦΘ ±≥≡≤Ω≥≤≡√ εß·σΩ≥εΓ (Ωεφ≥σΘφσ≡√ Φ Φ≥σ≡α≥ε≡√) [6,7]. ┬ τ√Ωσ C++ ≥αΩΦσ Γετ∞εµφε±≥Φ ∩εΣΣσ≡µΦΓα■≥± °Φ≡εΩε ΦτΓσ±≥φεΘ ßΦßδΦε≥σΩεΘ Ωδα±±εΓ STL [8], Γ 1995 πεΣ≤ ΓΩδ■≈σφφεΘ Γ σπε ±≥αφΣα≡≥.
┬ ταΩδ■≈σφΦσ ß≤Σ≤≥ Ω≡α≥Ωε ≡α±±∞ε≥≡σφ√ Φ φσΩε≥ε≡√σ Σε∩εδφΦ≥σδⁿφ√σ ±≡σΣ±≥Γα εΩ≡≤µσφΦ Java. ╥αΩΦ∞Φ ±≡σΣ±≥Γα∞Φ Γδ ■≥± , φα∩≡Φ∞σ≡, web'εΓ±ΩΦΘ ß≡α≤τσ≡ HotJava [9] (Φ∞σφφε ²≥ε∞≤ ß≡α≤τσ≡≤ ±Φ±≥σ∞α Java εß ταφα ±ΓεσΘ ²∞ßδσ∞εΘ - ≈α°σ≈ΩεΘ Σ√∞ ∙σπε± Ωε⌠σ), α ≥αΩµσ φσßεδⁿ°εΘ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√Θ τ√Ω JavaScript [10], ∩≡σΣφατφα≈σφφ√Θ Σδ ≡ατ≡αßε≥ΩΦ CGI-±Ω≡Φ∩≥εΓ [2, ±. 189 - 199], Φ±∩εδⁿτ≤ Ωεφ±≥≡≤Ω÷ΦΦ τ√Ωα Java. Netscape Navigator 2.0, ΦδΦ HotJava, Φφ≥σ≡∩≡σ≥Φ≡≤σ≥ ε∩σ≡α≥ε≡√ JavaScript, Ωε≥ε≡√σ ΓΩδ■≈α■≥± φσ∩ε±≡σΣ±≥Γσφφε Γ ±≥≡αφΦ÷≤ HTML. ═α τ√Ωσ JavaScript ≈α±≥ε ∩≡επ≡α∞∞Φ≡≤■≥ ≥σΩ≤∙≤■ Σα≥≤, ≡ατδΦ≈φ√σ "ßσπ≤∙Φσ ±≥≡εΩΦ" Φ Σ≡≤πΦσ ∞σφ ■∙Φσ± Γε Γ≡σ∞σφΦ εß·σΩ≥√, Γ±≥≡σ≈α■∙Φσ± φα ±≥≡αφΦ÷α⌡ HTML.
└Γ≥ε≡√ τ√Ωα Java ±≥≡σ∞ΦδΦ±ⁿ ±Σσδα≥ⁿ σπε Γφσ°φσ ∩ε⌡εµΦ∞ φα °Φ≡εΩε ≡α±∩≡ε±≥≡αφσφφ√Θ ±≡σΣΦ ∩≡επ≡α∞∞Φ±≥εΓ τ√Ω C++. ╧ε²≥ε∞≤ ±Φφ≥αΩ±Φ± τ√Ωα Java Γε ∞φεπε∞ ±εΓ∩αΣασ≥ ± ±Φφ≥αΩ±Φ±ε∞ C Φ C++. ╚ ΣσΘ±≥ΓΦ≥σδⁿφε Γ Java ±ε⌡≡αφσφα δσΩ±ΦΩα Φ ε±φεΓφ√σ ±Φφ≥αΩ±Φ≈σ±ΩΦσ Ωεφ±≥≡≤Ω÷ΦΦ C++. ╩αΩ Φ Γ C++ Γ Java ε∩≡σΣσδσφ√ ≤φα≡φ√σ Φ ßΦφα≡φ√σ α≡Φ⌠∞σ≥Φ≈σ±ΩΦσ, δεπΦ≈σ±ΩΦσ Φ ßΦ≥εΓ√σ ε∩σ≡α÷ΦΦ, φσ±ΩεδⁿΩε ε∩σ≡α÷ΦΘ ∩≡Φ±ΓαΦΓαφΦ , ≥≡σφα≡φα ≤±δεΓφα ε∩σ≡α÷Φ , Γφ√σ Φ φσ Γφ√σ ε∩σ≡α÷ΦΦ ∩≡ΦΓσΣσφΦ ≥Φ∩εΓ (∩≡Φ≈σ∞ Γ±σ ∩σ≡σ≈Φ±δσφφ√σ ε∩σ≡α÷ΦΦ Φ∞σ■≥ ≥αΩΦσ µσ εßετφα≈σφΦ Φ ∩≡Φε≡Φ≥σ≥√, ≈≥ε Φ ±εε≥Γσ≥±≥Γ≤■∙Φσ ε∩σ≡α÷ΦΦ C/C++). ╩αΩ Φ Γ C++ Γ Java ε∩≡σΣσδσφ√ ≤∩≡αΓδ ■∙Φσ ε∩σ≡α≥ε≡√ if, if-else, break, switch, return, while, do-while, for, continue (Γ±σ ∩σ≡σ≈Φ±δσφφ√σ ε∩σ≡α≥ε≡√ Φ∞σ■≥ ±σ∞αφ≥ΦΩ≤ αφαδεπΦ≈φ≤■ ±σ∞αφ≥ΦΩσ ±εε≥Γσ≥±≥Γ≤■∙Φ⌡ ε∩σ≡α≥ε≡εΓ C/C++). ╩αΩ Φ Γ C++ Γ Java ε∩≡σΣσδσφ√ Ωδα±±√, Φ∞σ■∙Φσ ταΩ≡√≥≤■ (private), επ≡αφΦ≈σφφε Σε±≥≤∩φ≤■ (protected) Φ εß∙σΣε±≥≤∩φ≤■ (public) ≈α±≥Φ, Ωδα±±√ ±δ≤µα≥ °αßδεφα∞Φ Σδ ∩ε≡εµΣσφΦ εß·σΩ≥εΓ, Σδ Ωδα±±εΓ ε∩≡σΣσδσφε ε≥φε°σφΦσ φα±δσΣεΓαφΦ (∩≡αΓΣα Γ Java ε≥∞σφσφε ∞φεµσ±≥Γσφφεσ φα±δσΣεΓαφΦσ), ε∩≡σΣσδσφ√ Ωεφ±≥≡≤Ω≥ε≡√ Φ Σσ±≥≡≤Ω≥ε≡√, ≤Ωατα≥σδⁿ this, αß±≥≡αΩ≥φ√σ Ωδα±±√. ═α ∩σ≡Γ√Θ Γτπδ Σ ∞εµσ≥ ∩εΩατα≥ⁿ± , ≈≥ε Java - ∩≡ε±≥ε σ∙σ εΣφα Γσ≡±Φ C++.
═ε ²≥ε Γ∩σ≈α≥δσφΦσ φσΓσ≡φεσ. ▀τ√Ω Java ±≤∙σ±≥Γσφφε ε≥δΦ≈ασ≥± ε≥ C++, ≥αΩ ΩαΩ ∩≡Φ ≡ατ≡αßε≥Ωσ Java Φτ C++, Ωε≥ε≡√Θ ß√δ Γτ ≥ τα ε±φεΓ≤, ß√δΦ Φ±Ωδ■≈σφ√ ∩ε≈≥Φ Γ±σ ε±εßσφφε±≥Φ C++, Φ∞σ■∙Φσ Ωε≡φΦ Γ τ√Ωσ C, Φτ Ωε≥ε≡επε ≡ατΓΦδ± C++. ┬ ≡στ≤δⁿ≥α≥σ Java εΩαταδ± φσ ε≈σ≡σΣφ√∞ ΣΦαδσΩ≥ε∞ C++, α φεΓ√∞ τ√Ωε∞, Ωε≥ε≡√Θ δ≤≈°σ C++ Γ ε±φεΓφε∞ τα ±≈σ≥ ≥επε, ≈σπε Γ φσ∞ φσ≥ ∩ε ±≡αΓφσφΦ■ ± C++. ┬ ε≥δΦ≈Φσ ε≥ C++ Java ∩ετΓεδ σ≥ ∩Φ±α≥ⁿ φαΣσµφ√σ, ßστε∩α±φ√σ, ∩≡ε±≥√σ, ≤Σεßφ√σ Φ δσπΩΦσ Σδ ∩εφΦ∞αφΦ ∩≡επ≡α∞∞√, ⌡ε≥ Φ ßεδσσ ∞σΣδσφφ√σ, ≈σ∞ ∩≡επ≡α∞∞√, φα∩Φ±αφφ√σ φα C++.
╫≥ε µσ ß√δε Φ±Ωδ■≈σφε Φτ C++ ∩≡Φ ≡ατ≡αßε≥Ωσ Java? ╧≡σµΣσ Γ±σπε ß√δΦ Φ±Ωδ■≈σφ√ ≤Ωατα≥σδΦ. ╙Ωατα≥σδΦ ΦδΦ αΣ≡σ±α Γ ∩α∞ ≥Φ - φαΦßεδσσ ∞ε∙φεσ ±≡σΣ±≥Γε φα∩Φ±αφΦ Γ√±εΩε²⌠⌠σΩ≥ΦΓφ√⌡ ∩≡επ≡α∞∞ Γ εΩ≡≤µσφΦΦ C/C++, φε ²≥ε Φ φαΦßεδσσ ε∩α±φεσ ±≡σΣ±≥Γε ²≥Φ⌡ τ√ΩεΓ. ╚ Σσδε Σαµσ φσ Γ ≥ε∞, ≈≥ε, ΩαΩ ε≥∞σ≈α■≥ αΓ≥ε≡√ τ√Ωα Java, ∩≡Φ φσΣε±≥α≥ε≈φε αΩΩ≤≡α≥φε∞ εß≡α∙σφΦΦ ± ≤Ωατα≥σδ ∞Φ ∞επ≤≥ ΓετφΦΩα≥ⁿ ≥≡≤Σφε ≤±≥≡αφΦ∞√σ ε°ΦßΩΦ Γ C++-∩≡επ≡α∞∞σ. ┴εδσσ ±≤∙σ±≥Γσφφ√σ ≥≡≤Σφε±≥Φ Γ ≡αßε≥σ ± ≤Ωατα≥σδ ∞Φ Γ√ Γδ ■≥± ∩≡Φ ≡ατ≡αßε≥Ωσ ≡α±∩≡σΣσδσφφ√⌡ ∩≡επ≡α∞∞, ΩεπΣα ≥≡σß≤σ≥± ε±≤∙σ±≥ΓΦ≥ⁿ ≤Σαδσφφ√Θ Γ√τεΓ ⌠≤φΩ÷ΦΦ (∞σ≥εΣα), ±≡σΣΦ ∩α≡α∞σ≥≡εΓ Ωε≥ε≡εΘ σ±≥ⁿ ≤Ωατα≥σδΦ. ┼∙σ ßεδσσ ±≤∙σ±≥Γσφφ√σ ≥≡≤Σφε±≥Φ ±Γ ταφ√ ± Γετ∞εµφε±≥ⁿ■ ≡αßε≥√ ± ∩≡εΦτΓεδⁿφ√∞Φ αΣ≡σ±α∞Φ ∩α∞ ≥Φ ≈σ≡στ ßσ±≥Φ∩εΓ√σ ≤Ωατα≥σδΦ, ≥αΩ ΩαΩ ²≥ε ∩ετΓεδ σ≥ ∩εδφε±≥ⁿ■ Φπφε≡Φ≡εΓα≥ⁿ τα∙Φ≥≤ ∩α∞ ≥Φ.
┬ τ√Ωσ Java φσ≥ ≤Ωατα≥σδσΘ; Γ±σ εß·σΩ≥√ ∩≡επ≡α∞∞√ ≡α±∩εδεµσφ√ Γ Ω≤≈σ (heap) Φ Σε±≥≤∩φ√ ∩ε εß·σΩ≥φ√∞ ±±√δΩα∞, Ωε≥ε≡√σ ∩≡σΣ±≥αΓδ ■≥ εß·σΩ≥√ Γε Γ±σ⌡ ±≥≡≤Ω≥≤≡α⌡, Γ Ωε≥ε≡√σ ∞επ≤≥ Γ⌡εΣΦ≥ⁿ εß·σΩ≥√ Γ Ωα≈σ±≥Γσ Ωε∞∩εφσφ≥εΓ. ╧ε±ΩεδⁿΩ≤ ∩≡Φ ≡αßε≥σ ± Ω≤≈σΘ ∩≡επ≡α∞∞Φ±≥ φσ ∞εµσ≥ ∩εδⁿτεΓα≥ⁿ± ΓταΦ∞φ√∞ ≡α±∩εδεµσφΦσ∞ εß·σΩ≥εΓ Γ ∩α∞ ≥Φ, ²≥ε ≡σ°σφΦσ ετφα≈ασ≥, ≈≥ε Φτ τ√Ωα Java Φ±Ωδ■≈σφα "Ω≤±ε≈φε-δΦφσΘφα " ∞εΣσδⁿ ∩α∞ ≥Φ ±Φ±≥σ∞√ C/C++, ∩≡Φ Ωε≥ε≡εΘ ∞α±±ΦΓ - δΦ°ⁿ ≥ε≈Ωα ( ≈σΘΩα) ∩α∞ ≥Φ, φα Ωε≥ε≡≤■ ±±√δασ≥± ≤Ωατα≥σδⁿ ²≥επε ∞α±±ΦΓα; Ωεφσ≈φε, ²≥ε ≡σ°σφΦσ Φ±Ωδ■≈Φδε φσ∩ε±≡σΣ±≥Γσφφ√Θ Σε±≥≤∩ Ω ∩α∞ ≥Φ, φε εφε ≤±δεµφΦδε ≡αßε≥≤ ± ²δσ∞σφ≥α∞Φ ∞α±±ΦΓεΓ Φ, σ±≥σ±≥Γσφφε, Γδ σ≥± Φ±≥ε≈φΦΩε∞ ßεδσσ φΦτΩεΘ ²⌠⌠σΩ≥ΦΓφε±≥Φ Java-∩≡επ≡α∞∞ ∩ε ±≡αΓφσφΦ■ ± C++-∩≡επ≡α∞∞α∞Φ. ═σεß⌡εΣΦ∞ε ε≥∞σ≥Φ≥ⁿ, ≈≥ε εß·σΩ≥φ√σ ±±√δΩΦ τ√Ωα Java ±εΣσ≡µα≥ Φφ⌠ε≡∞α÷Φ■ ε Ωδα±±σ εß·σΩ≥εΓ, φα Ωε≥ε≡√σ εφΦ ±±√δα■≥± , ≥αΩ ≈≥ε εß·σΩ≥φ√σ ±±√δΩΦ - ²≥ε φσ ≤Ωατα≥σδΦ, α Σσ±Ω≡Φ∩≥ε≡√ εß·σΩ≥εΓ. ═αδΦ≈Φσ Σσ±Ω≡Φ∩≥ε≡εΓ ∩ετΓεδ σ≥ JavaVM Γ√∩εδφ ≥ⁿ ∩≡εΓσ≡Ω≤ ±εΓ∞σ±≥φε±≥Φ ≥Φ∩εΓ φα ⌠ατσ Φφ≥σ≡∩≡σ≥α÷ΦΦ ΩεΣα, Γετß≤µΣα Φ±Ωδ■≈σφΦσ Γ ±δ≤≈ασ ε°ΦßΩΦ.
┬ Java ∩σ≡σ±∞ε≥≡σφα Φ Ωεφ÷σ∩÷Φ C/C++ ΣΦφα∞Φ≈σ±Ωεπε ≡α±∩≡σΣσδσφΦ ∩α∞ ≥Φ. ╚±Ωδ■≈σφα ⌠≤φΩ÷Φ ε±ΓεßεµΣσφΦ ΣΦφα∞Φ≈σ±ΩΦ Γ√ΣσδσφφεΘ ∩α∞ ≥Φ free(), ≥αΩ ΩαΩ ≡αßε≥α ± φσΘ ±ε≈≥σφα ±δεµφεΘ Φ ≈≡σΓα≥εΘ ∞φεπΦ∞Φ ε°ΦßΩα∞Φ Γ ∩≡επ≡α∞∞σ, Γετ∞εµφε±≥ⁿ Ωε≥ε≡√⌡ ≤∞σφⁿ°ασ≥ φαΣσµφε±≥ⁿ C++-∩≡επ≡α∞∞. ┬∞σ±≥ε ²≥επε Γ Java ≡ατ≡αßε≥αφα Φ ≡σαδΦτεΓαφα ±Φ±≥σ∞α αΓ≥ε∞α≥Φ≈σ±Ωεπε ε±ΓεßεµΣσφΦ ΣΦφα∞Φ≈σ±ΩΦ Γ√ΣσδσφφεΘ ∩α∞ ≥Φ (±ßε≡∙ΦΩ ∞≤±ε≡α). ═αδΦ≈Φσ ∞σ⌡αφΦτ∞α αΓ≥ε∞α≥Φ≈σ±ΩεΘ ±ßε≡ΩΦ ∞≤±ε≡α, σ±≥σ±≥Γσφφεσ Σδ Φφ≥σ≡∩≡σ≥Φ≡≤σ∞επε τ√Ωα, ≤±δεµφ σ≥ ≡ατ≡αßε≥Ω≤ ε∩≥Φ∞ΦτΦ≡≤■∙Φ⌡ Ωε∞∩Φδ ≥ε≡εΓ Σδ ≥αΩεπε τ√Ωα. ╥σ∞ φσ ∞σφσσ ΩαΩ ∩εΩατ√Γασ≥ ∩≡αΩ≥ΦΩα Φ±∩εδⁿτεΓαφΦ Java φ≤µΣα Γ ≥αΩΦ⌡ Ωε∞∩Φδ ≥ε≡α⌡ Φ∞σσ≥± (±∞. φΦµσ).
╤≥≡σ∞δσφΦσ ≤∩≡ε±≥Φ≥ⁿ Java-∩≡επ≡α∞∞√ Φ ±Σσδα≥ⁿ Φ⌡ ßεδσσ ∩εφ ≥φ√∞Φ ∩≡ΦΓσδε Ω ε≥Ωατ≤ ε≥ ⌠αΘδεΓ-ταπεδεΓΩεΓ (h-⌠αΘδεΓ) Φ ∩≡σ∩≡ε÷σ±±ε≡φεΘ εß≡αßε≥ΩΦ. ╧ε ∞φσφΦ■ αΓ≥ε≡εΓ Java ⌠αΘδ√-ταπεδεΓΩΦ, ±εΣσ≡µα∙Φσ ∩≡ε≥ε≥Φ∩√ Ωδα±±εΓ Φ ≡α±∩≡ε±≥≡αφ σ∞√σ ε≥Σσδⁿφε ε≥ ΣΓεΦ≈φεπε ΩεΣα ²≥Φ⌡ Ωδα±±εΓ, ≤±δεµφ ■≥ ≤∩≡αΓδσφΦσ Γσ≡±Φ ∞Φ, α ∞σ⌡αφΦτ∞ ∩εΣΣσ≡µΩΦ ²≥εΘ Γετ∞εµφε±≥Φ Γ C/C++ ∩ε∞επασ≥ τδεφα∞σ≡σφφ√∞ ∩εδⁿτεΓα≥σδ ∞ ∩εδ≤≈α≥ⁿ Σε±≥≤∩ Ω ∩≡ΦΓα≥φ√∞ Σαφφ√∞ εß·σΩ≥εΓ. ┬ Java-∩≡επ≡α∞∞α⌡ ±∩σ÷Φ⌠ΦΩα÷Φ Ωδα±±α Φ σπε ≡σαδΦτα÷Φ Γ±σπΣα ±εΣσ≡µα≥± Γ εΣφε∞ Φ ≥ε∞ µσ ⌠αΘδσ. ╧≡σ∩≡ε÷σ±±ε≡ C/C++ ± σπε Γετ∞εµφε±≥ ∞Φ ≤±δεΓφεΘ Ωε∞∩Φδ ÷ΦΦ Σασ≥ Γετ∞εµφε±≥ⁿ ∩Φ±α≥ⁿ φσ∩εφ ≥φ√σ ≥σΩ±≥√ ∩≡επ≡α∞∞, ≈≥ε, Ωεφσ≈φε, φσ ε≈σφⁿ ⌡ε≡ε°ε. ═ε ε≥Ωατ ε≥ ∩≡σ∩≡ε÷σ±±ε≡α ∩≡ΦΓσδ Ω φσΓετ∞εµφε±≥Φ ∩α≡α∞σ≥≡Φτα÷ΦΦ Ωδα±±εΓ ∩ε ≥Φ∩α∞ (Ωδα±±α∞) Φ⌡ ≈δσφεΓ, ≈≥ε ≤±δεµφ σ≥ ∩≡επ≡α∞∞Φ≡εΓαφΦσ ∩≡ε±≥√⌡ Γσ∙σΘ (φα∩≡Φ∞σ≡, φα Java, Γ ε≥δΦ≈Φσ ε≥ C++, φσδⁿτ Φ∞σ≥ⁿ ∞α±±ΦΓ, ²δσ∞σφ≥α∞Φ Ωε≥ε≡επε Γδ ■≥± εß·σΩ≥√ ∩≡εΦτΓεδⁿφεπε Ωδα±±α). ╚, Ωεφσ≈φε, Φτ Java Φ±Ωδ■≈σφ φσφαΓΦΣΦ∞√Θ ∞φεπΦ∞Φ ∩≡επ≡α∞∞Φ±≥α∞Φ-∩σΣαφ≥α∞Φ ε∩σ≡α≥ε≡ goto, τα∞σφσφφ√Θ φα continue Φ break ± ∞σ≥ΩεΘ.
╩≡ε∞σ ≥επε Φτ Java Φ±Ωδ■≈σφ√ "Σ≤ßδΦ≡≤■∙Φσ" ∩εφ ≥Φ Φ Ωεφ±≥≡≤Ω÷ΦΦ τ√Ωα C++, Γ ≈α±≥φε±≥Φ, ⌠≤φΩ÷ΦΦ (Γ Java σ±≥ⁿ ≥εδⁿΩε ∞σ≥εΣ√ Ωδα±±εΓ), α ≥αΩµσ ±≥≡≤Ω≥≤≡√ (struct) Φ εß·σΣΦφσφΦ (union) (Γ Java Σδ ²≥επε Φ±∩εδⁿτ≤■≥± α≥≡Φß≤≥√ Ωδα±±εΓ).
═σεß⌡εΣΦ∞ε ≥αΩµσ ε≥∞σ≥Φ≥ⁿ, ≈≥ε Γ Ω≤≈σ ≡ατ∞σ∙α■≥± Γ±σ Σαφφ√σ Java-∩≡επ≡α∞∞√. ▌≥ε ετφα≈ασ≥, ≈≥ε ⌡ε≥ Γ Java Φ ε∩≡σΣσδσφ√ Σαφφ√σ ∩≡ε±≥√⌡ ≥Φ∩εΓ (byte, short, int, long, char, float, double, boolean) ∩σ≡σ∞σφφ√σ ²≥Φ⌡ ≥Φ∩εΓ ∞επ≤≥ ß√≥ⁿ δΦ°ⁿ α≥≡Φß≤≥α∞Φ εß·σΩ≥εΓ. ╬≥±■Σα ±δσΣ≤σ≥, ≈≥ε σ±δΦ φ≤µφε ταΓσ±≥Φ ∩σ≡σ∞σφφ≤■, φα∩≡Φ∞σ≡, ÷σδεπε ≥Φ∩α (int), ≥ε φσεß⌡εΣΦ∞ε ταΓσ±≥Φ εß·σΩ≥ Ωδα±±α Int, Ωε≥ε≡√Θ Φ∞σσ≥ εΣΦφ α≥≡Φß≤≥ ≥Φ∩α int Φ ΣΓα ∞σ≥εΣα - ±εε≥Γσ≥±≥Γσφφε ≈≥σφΦ τφα≈σφΦ ²≥επε α≥≡Φß≤≥α Φ τα∩Φ±Φ Γ φσπε φεΓεπε τφα≈σφΦ .
╥αΩΦ∞ εß≡ατε∞, φσ±∞ε≥≡ φα Γφσ°φσσ ±⌡εΣ±≥Γε ± C++, Java φσ ∩≡ε±≥ε Γδ σ≥± φεΓ√∞ τ√Ωε∞ ∩≡επ≡α∞∞Φ≡εΓαφΦ , εφ φα±≥εδⁿΩε πδ≤ßεΩε ε≥δΦ≈ασ≥± ε≥ C++, ≈≥ε ΩεφΓσ≡≥Φ≡εΓα≥ⁿ ≡ατ≤∞φ√∞ εß≡ατε∞ C++-∩≡επ≡α∞∞√ φα τ√Ω Java (ΦδΦ φαεßε≡ε≥) - ε≈σφⁿ ±δεµφα ταΣα≈α.
╟αΓσ≡°α Ω≡α≥ΩΦΘ εßτε≡ τ√Ωα Java, ≡α±±∞ε≥≡Φ∞ σπε Ωεφ±≥≡≤Ω÷ΦΦ, Ωε≥ε≡√⌡ φσ≥ Γ C++. ▌≥ε ε∩σ≡α≥ε≡√ package, import, interface Φ implements.
╬∩σ≡α≥ε≡ package, ∩ε∞σ∙ασ∞√Θ Γ φα≈αδσ Φ±⌡εΣφεπε ∩≡επ≡α∞∞φεπε ⌠αΘδα ε∩≡σΣσδ σ≥ ∩αΩσ≥, ≥.σ. εßδα±≥ⁿ Γ ∩≡ε±≥≡αφ±≥Γσ Φ∞σφ Ωδα±±εΓ, Γ Ωε≥ε≡εΘ ε∩≡σΣσδ ■≥± Φ∞σφα Ωδα±±εΓ, ±εΣσ≡µα∙Φ⌡± Γ ²≥ε∞ ⌠αΘδσ; Γφ≤≥≡Φ ≤ΩαταφφεΘ εßδα±≥Φ ∩≡ε±≥≡αφ±≥Γα Φ∞σφ ∞εµφε Γ√ΣσδΦ≥ⁿ ∩εΣεßδα±≥Φ, Φ±∩εδⁿτ≤ Γ±σ ≥ε≥ µσ ε∩σ≡α≥ε≡ package; ΣσΘ±≥ΓΦσ ε∩σ≡α≥ε≡α package αφαδεπΦ≈φε ΣσΘ±≥ΓΦ■ εß· ΓδσφΦ ΣΦ≡σΩ≥ε≡ΦΦ φα Φ∞σφα ⌠αΘδεΓ. ─δ εßσ±∩σ≈σφΦ Γετ∞εµφε±≥Φ Φ±∩εδⁿτεΓαφΦ Ωε≡ε≥ΩΦ⌡ Φ∞σφ Ωδα±±εΓ, ∩ε∞σ∙σφφ√⌡ Γ Σ≡≤πΦσ ∩αΩσ≥√, Φ±∩εδⁿτ≤σ≥± ε∩σ≡α≥ε≡ import. ╧αΩσ≥, ε∩≡σΣσδ σ∞√Θ ε∩σ≡α≥ε≡ε∞ package ∩ε ±≤∙σ±≥Γ≤ Γδ σ≥± ±≥≡≤Ω≥≤≡φεΘ ≈α±≥ⁿ■ ∩≡εσΩ≥Φ≡≤σ∞εΘ ∩≡επ≡α∞∞φεΘ ±Φ±≥σ∞√, Γ α±∩σΩ≥σ Φφ≥σ≡⌠σΘ±α Γε ∞φεπε∞ ∩ε⌡εµσΘ φα εß·σΩ≥, φε Φ∞σ■∙σΘ ßεδσσ ±δεµφ≤■ ±≥≡≤Ω≥≤≡≤ (εφ Φπ≡ασ≥ ≡εδⁿ ∩εΣ±Φ±≥σ∞√). ┼±δΦ ΓΓσ±≥Φ ∩αΩσ≥√ (∩εΣ±Φ±≥σ∞√) Γ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√σ ∞σ≥εΣεδεπΦΦ ±≥≡≤Ω≥≤≡φεπε ∩≡εσΩ≥Φ≡εΓαφΦ ∩≡επ≡α∞∞φ√⌡ ±Φ±≥σ∞ (φα∩≡Φ∞σ≡, Γ ΦτΓσ±≥φ≤■ ∞σ≥εΣεδεπΦ■ OMT [11]), εφΦ ±≥αφ≤≥ σ∙σ ßεδσσ ∞ε∙φ√∞ ±≡σΣ±≥Γε∞ ∩εΣΣσ≡µΩΦ ∩≡επ≡α∞∞φ√⌡ ∩≡εσΩ≥εΓ.
╬∩σ≡α≥ε≡ interface, ∩εταΦ∞±≥ΓεΓαφφ√Θ ≡ατ≡αßε≥≈ΦΩα∞Φ Java Φτ τ√Ωα Objective_C (≥α∞ αφαδεπΦ≈φεσ ∩εφ ≥Φσ φατ√Γασ≥± ∩≡ε≥εΩεδε∞), ε≥Ω≡√Γασ≥ ε∩≡σΣσδσφΦσ Φφ≥σ≡⌠σΘ±α. ╚φ≥σ≡⌠σΘ± - ²≥ε φαßε≡ ±Φπφα≥≤≡ ∞σ≥εΣεΓ ßστ Φτ ≡σαδΦτα÷ΦΦ. ╩αµΣ√Θ Φφ≥σ≡⌠σΘ± ∞εµσ≥ ß√≥ⁿ ≡σαδΦτεΓαφ εΣφΦ∞ ΦδΦ φσ±ΩεδⁿΩΦ∞Φ Ωδα±±α∞Φ, ∩≡Φ ²≥ε∞ Ωδα±±√, ≡σαδΦτ≤■∙Φσ εΣΦφ Φ ≥ε≥ µσ Φφ≥σ≡⌠σΘ±, ∞επ≤≥ ß√≥ⁿ φΦΩαΩ φσ ±Γ ταφ√ ∩ε Φσ≡α≡⌡ΦΦ φα±δσΣεΓαφΦ . ╩δα±± ∞εµσ≥ ≡σαδΦτεΓ√Γα≥ⁿ δ■ßεσ ≈Φ±δε Φφ≥σ≡⌠σΘ±εΓ (±∩Φ±εΩ Φφ≥σ≡⌠σΘ±εΓ, ≡σαδΦτ≤σ∞√⌡ φσΩε≥ε≡√∞ Ωδα±±ε∞ ≤Ωατ√Γασ≥± Γ ε∩σ≡α≥ε≡σ implements, Σε∩εδφ ■∙Φ∞ ε∩≡σΣσδσφΦσ ±εε≥Γσ≥±≥Γ≤■∙σπε Ωδα±±α). ═α ∞φεµσ±≥Γσ Φφ≥σ≡⌠σΘ±εΓ ≥εµσ ε∩≡σΣσδσφα Φσ≡α≡⌡Φ ∩ε φα±δσΣεΓαφΦ■, φε εφα φσ Φ∞σσ≥ ε≥φε°σφΦ Ω Φσ≡α≡⌡ΦΦ Ωδα±±εΓ. ┬ τ√Ωσ Java Φφ≥σ≡⌠σΘ±√ εßσ±∩σ≈ΦΓα■≥ ßεδⁿ°≤■ ≈α±≥ⁿ ≥εΘ ⌠≤φΩ÷Φεφαδⁿφε±≥Φ, Ωε≥ε≡α Γ C++ εß√≈φε ∩≡σΣ±≥αΓδ σ≥± ± ∩ε∞ε∙ⁿ■ ∞σ⌡αφΦτ∞α ∞φεµσ±≥Γσφφεπε φα±δσΣεΓαφΦ .
╤Φ±≥σ∞φα ßΦßδΦε≥σΩα Ωδα±±εΓ τ√Ωα Java ±εΣσ≡µΦ≥ Ωδα±±√ Φ ∩αΩσ≥√, ≡σαδΦτ≤■∙Φσ ≡ατδΦ≈φ√σ ßατεΓ√σ Γετ∞εµφε±≥Φ τ√Ωα. ╠σ≥εΣ√ Ωδα±±εΓ, ΓΩδ■≈σφφ√⌡ Γ ²≥≤ ßΦßδΦε≥σΩ≤, Γ√τ√Γα■≥± Φτ JavaVM Γε Γ≡σ∞ Φφ≥σ≡∩≡σ≥α÷ΦΦ Java-∩≡επ≡α∞∞√. ╚Σσ ≡σαδΦτεΓ√Γα≥ⁿ ≈α±≥ⁿ τ√ΩεΓ√⌡ Γετ∞εµφε±≥σΘ ± ∩ε∞ε∙ⁿ■ ±Φ±≥σ∞φ√⌡ ßΦßδΦε≥σΩ ß√δα ≤±∩σ°φε ε±≤∙σ±≥Γδσφα σ∙σ Γ τ√Ωσ C Φ σπε ∩≡σσ∞φΦΩσ C/C++ (ε≥Ω≤Σα Java Φ Γτ δα ²≥≤ ΦΣσ■). ═ε σ±δΦ Γ ±Φ±≥σ∞σ ∩≡επ≡α∞∞Φ≡εΓαφΦ C/C++ φ≤µφα ß√δα ΦτΓσ±≥φα ε±≥ε≡εµφε±≥ⁿ ∩≡Φ ≡ατΓΦ≥ΦΦ τ√Ωα ± ∩ε∞ε∙ⁿ■ ßΦßδΦε≥σΩ, ≥αΩ ΩαΩ ßΦßδΦε≥σΩΦ Γφε±ΦδΦ Γ τ√Ω ²δσ∞σφ≥ Φφ≥σ≡∩≡σ≥α÷ΦΦ, ±φΦµα ²⌠⌠σΩ≥ΦΓφε±≥ⁿ ∩≡επ≡α∞∞φεπε ΩεΣα, ≥ε Γ ±Φ±≥σ∞σ Java Φ ≥αΩ Γ± ∩≡επ≡α∞∞α Φφ≥σ≡∩≡σ≥Φ≡≤σ≥± φα JavaVM, ≥αΩ ≈≥ε Γετ∞εµφε±≥Φ ≡α±°Φ≡ ≥ⁿ τ√Ω, ΓΓεΣ Γ±σ φεΓ√σ Φ φεΓ√σ Ωδα±±√ Φ ∩αΩσ≥√ Γ ±Φ±≥σ∞φ≤■ ßΦßδΦε≥σΩ≤, ∩≡αΩ≥Φ≈σ±ΩΦ φσεπ≡αφΦ≈σφ√.
┬√°σ ≤µσ ß√δε ≤∩ε∞ φ≤≥ε, ≈≥ε ± ∩ε∞ε∙ⁿ■ ßΦßδΦε≥σ≈φ√⌡ Ωδα±±εΓ Thread Φ ThreadGroup Γ Java ΓΓσΣσφ√ δσπΩεΓσ±φ√σ ∩≡ε÷σ±±√ (≥≡²Σ√). ─δ ±Φφ⌡≡εφΦτα÷ΦΦ ≥≡²ΣεΓ Γ Java Φ±∩εδⁿτ≤■≥± ∞εφΦ≥ε≡√ ╒εα≡α, ± ∩ε∞ε∙ⁿ■ Ωε≥ε≡√⌡ ε±≤∙σ±≥Γδ σ≥± ±Φφ⌡≡εφΦτα÷Φ ε≈σ≡σΣσΘ (± ∩≡Φε≡Φ≥σ≥α∞Φ) Ω ±εΓ∞σ±≥φε Φ±∩εδⁿτ≤σ∞√∞ Σαφφ√∞. ╠σ⌡αφΦτ∞ φα±δσΣεΓαφΦ ∩ετΓεδ σ≥ ΓΓεΣΦ≥ⁿ Γ ≤∩≡αΓδσφΦσ ≥≡²Σα∞Φ φεΓ√σ Γετ∞εµφε±≥Φ: ∞εµφε ≡ατ≡αßε≥α≥ⁿ "±ΓεΦ ≥≡²Σ√", φα±δσΣ≤ ±ⁿ ε≥ Ωδα±±α Thread.
╤Φ±≥σ∞φα ßΦßδΦε≥σΩα Java ±εΣσ≡µΦ≥ ≥αΩµσ Ωδα±±√ String Φ StringBuffer, ∩εΣΣσ≡µΦΓα■∙Φσ ≡αßε≥≤ ±ε ±≥≡εΩα∞Φ. ▌≥Φ Ωδα±±√ εß· Γδσφ√ ΩαΩ final, ≈≥ε ετφα≈ασ≥, ≈≥ε ε≥ ²≥Φ⌡ Ωδα±±εΓ φσδⁿτ ∩≡εΦτΓεΣΦ≥ⁿ ∩εΣΩδα±±√. ╩δα±± String ±εΣσ≡µΦ≥ ε±φεΓφ√σ ε∩σ≡α÷ΦΦ Σδ ≡αßε≥√ ±ε ±≥≡εΩα∞Φ (±δΦ φΦσ ±≥≡εΩ, ±≡αΓφσφΦσ ±≥≡εΩ, ∩εΦ±Ω Φ ΦτΓδσ≈σφΦσ ±Φ∞ΓεδεΓ Φ ≥.∩.). ╬≥∞σ≥Φ∞, ≈≥ε ε∩σ≡α÷Φ (∞σ≥εΣ) ΩεφΩα≥σφα÷ΦΦ (±δΦ φΦ ) ±≥≡εΩ εßετφα≈ασ≥± ±Φ∞Γεδε∞ "+", ∩≡Φ≈σ∞ ²≥ε σΣΦφ±≥Γσφφ√Θ ±δ≤≈αΘ Γ τ√Ωσ Java, ΩεπΣα Φ±∩εδⁿτεΓαφα ∩σ≡σπ≡≤τΩα τφαΩεΓ ε∩σ≡α÷ΦΘ (Γ ε≥δΦ≈Φσ ε≥ C++, °Φ≡εΩε Φ±∩εδⁿτ≤■∙σ∞ ∩σ≡σπ≡≤τΩ≤ ε∩σ≡α÷ΦΘ +, * Φ Σ≡., ≈≥ε ∩≡ΦΓεΣΦ≥ Ω ∩δε⌡ε ∩εφΦ∞ασ∞√∞ ≥σΩ±≥α∞ ∩≡επ≡α∞∞, Γ Java τα∩≡σ∙σφα ∩σ≡σπ≡≤τΩα τφαΩεΓ ε∩σ≡α÷ΦΘ). ╩δα±± StringBuffer Γδ σ≥± ßδΦτφσ÷ε∞ Ωδα±±α String, φε, Γ ε≥δΦ≈Φσ ε≥ Ωδα±±α String, εß·σΩ≥√ Ωε≥ε≡επε φσδⁿτ Φτ∞σφ ≥ⁿ (φεΓα ±≥≡εΩα - ²≥ε φεΓ√Θ εß·σΩ≥ Ωδα±±α String), ±≥≡εΩΦ, Γδ ■∙Φσ± εß·σΩ≥α∞Φ Ωδα±±α StringBuffer, ∞εµφε Φτ∞σφ ≥ⁿ.
╩αΩ Φ Γ ±Φ±≥σ∞σ ∩≡επ≡α∞∞Φ≡εΓαφΦ C/C++, Γ ±Φ±≥σ∞φ≤■ ßΦßδΦε≥σΩ≤ Java ΓΩδ■≈σφ ∩αΩσ≥ java.io, Γ Ωε≥ε≡ε∞ ≡σαδΦτεΓαφ√ ∩ε≥εΩΦ ΓΓεΣα-Γ√ΓεΣα. ┬ετ∞εµφε±≥Φ ΓΓεΣα-Γ√ΓεΣα Γ Java, Γ ε±φεΓφε∞ αφαδεπΦ≈φ√ ≡σαδΦτα÷ΦΦ ΓΓεΣα-Γ√ΓεΣα Γ ±Φ±≥σ∞σ C/C++.
┬ ±Φ±≥σ∞φ≤■ ßΦßδΦε≥σΩ≤ Java Γ⌡εΣ ≥ ∩αΩσ≥√ java.lang Φ java.util, Ωε≥ε≡√σ ±εΣσ≡µα≥ φαßε≡√ Γ±∩ε∞επα≥σδⁿφ√⌡ Ωδα±±εΓ, °Φ≡εΩε Φ±∩εδⁿτ≤σ∞√⌡ Γ Σ≡≤πΦ⌡ Γ±≥≡εσφφ√⌡ ∩αΩσ≥α⌡ Java Φ, σ±≥σ±≥Γσφφε Γ ∩≡ΦΩδαΣφ√⌡ ∩αΩσ≥α⌡ Φ Ωδα±±α⌡, ≡ατ≡αßα≥√Γασ∞√⌡ ∩εδⁿτεΓα≥σδ ∞Φ εΩ≡≤µσφΦ Java. ┬ ≈α±≥φε±≥Φ, ∩αΩσ≥ java.lang ±εΣσ≡µΦ≥ αß±≥≡αΩ≥φ√Θ Ωδα±± Number, ∩≡σΣ±≥αΓδ ■∙ΦΘ ±εßεΘ Φφ≥σ≡⌠σΘ± Σδ ≡αßε≥√ ±ε Γ±σ∞Φ ±Ωαδ ≡φ√∞Φ ≥Φ∩α∞Φ, σπε ∩εΣΩδα±±√ Integer, Long, Float Φ Double, Γδ ■∙Φσ± Ωδα±±α∞Φ-εßεδε≈Ωα∞Φ Σδ τφα≈σφΦΘ ±εε≥Γσ≥±≥Γ≤■∙Φ⌡ ≥Φ∩εΓ (ΩαµΣ√Θ εß·σΩ≥ Ωδα±±α-εßεδε≈ΩΦ ±εΣσ≡µΦ≥ εΣφε τφα≈σφΦσ ±εε≥Γσ≥±≥Γ≤■∙σπε ≥Φ∩α Φ Φ∞σσ≥ ∞σ≥εΣ√, εßσ±∩σ≈ΦΓα■∙Φσ Σε±≥≤∩ Ω ≤Ωαταφφε∞≤ τφα≈σφΦ■), α ≥αΩµσ Ωδα±±√-εßεδε≈ΩΦ Character Φ Boolean. ╚τ Σ≡≤πΦ⌡ Ωδα±±εΓ ²≥Φ⌡ ∩αΩσ≥εΓ ∞εµφε ε≥∞σ≥Φ≥ⁿ Ωδα±± Math, Ωε≥ε≡√Θ ±εΣσ≡µΦ≥ ⌠≤φΩ÷ΦΦ ± ∩δαΓα■∙σΘ ≥ε≈ΩεΘ, Φ±∩εδⁿτ≤σ∞√σ Γ ⌠ΦτΦ≈σ±ΩΦ⌡ Φ ≥σ⌡φΦ≈σ±ΩΦ⌡ ≡α±≈σ≥α⌡, α ≥αΩµσ Ωεφ±≥αφ≥√ E (∩≡ΦßδΦτΦ≥σδⁿφε 2.72) Φ PI (∩≡ΦßδΦτΦ≥σδⁿφε 3.14).
╚φ≥σπ≡α÷Φ ±Φ±≥σ∞√ Java ± ±σ≥ⁿ■ Internet εßσ±∩σ≈ΦΓασ≥± ∩αΩσ≥ε∞ java.lang, Γ⌡εΣ ∙Φ∞ Γ ±Φ±≥σ∞φ≤■ ßΦßδΦε≥σΩ≤ Java. ╧≡Φ ²≥ε∞ αΣ≡σ±α αßεφσφ≥εΓ, ∩≡Φφ ≥√σ Γ Internet, ∩εΣΣσ≡µΦΓα■≥± Ωδα±±ε∞ InetAddress, Σδ ∩εΣΣσ≡µΩΦ ΣσΘ≥απ≡α∞∞ (∩αΩσ≥εΓ ∩≡ε≥εΩεδα UDP) Φ±∩εδⁿτ≤■≥± Ωδα±±√ DatagramPacket Φ DatagramSocket, Ωδα±± Socket ∩εΣΣσ≡µΦΓασ≥ ±εΩσ≥√ TCP/IP, Σδ ±ετΣαφΦ ±σ≡Γσ≡εΓ Internet Φ±∩εδⁿτ≤■≥± εß·σΩ≥√ Ωδα±±α ServerSocket. ═αΩεφσ÷, Φ∞σσ≥± Ωδα±± URL Σδ ±Γ τΦ ± WWW (∩εδⁿτεΓα≥σδΦ WWW τφα■≥, ≈≥ε URL, ΦδΦ Uniform Resource Locators - φαΦßεδσσ ⌠≤φΣα∞σφ≥αδⁿφ√Θ Ωε∞∩εφσφ≥ WWW, εßσ±∩σ≈ΦΓα■∙ΦΘ Σε±≥≤∩ Ω σσ ±εΣσ≡µΦ∞ε∞≤; Γ ±∩Φ±Ωσ δΦ≥σ≡α≥≤≡√ Ω ΣαφφεΘ ±≥α≥ⁿσ URL Φ±∩εδⁿτεΓαφ√ Σδ ≤ΩαταφΦ Φ±≥ε≈φΦΩεΓ, Σε±≥≤∩φ√⌡ ∩ε Internet). ╤σ≥σΓ√σ Ωδα±±√ Java ∩≡σΣ±≥αΓδ ■≥ ±φ√Θ Φ ∩≡ε±≥εΘ Γ Φ±∩εδⁿτεΓαφΦΦ Φφ≥σ≡⌠σΘ± Σδ ≡αßε≥√ Γ Internet, ±≤∙σ±≥Γσφφε ≤∩≡ε∙α φα∩Φ±αφΦσ ∩≡επ≡α∞∞ Σδ Internet.
┬ ±Φ±≥σ∞φ≤■ ßΦßδΦε≥σΩ≤ Java ΓΩδ■≈σφ√ ≥αΩµσ Ωδα±±√, ∩εΣΣσ≡µΦΓα■∙Φσ ≡ατ≡αßε≥Ω≤ α∩∩δσ≥εΓ Φ ≤∩≡ε∙α■∙Φσ ≡αßε≥≤ ± εΩφα∞Φ. ▌≥Φ Ωδα±±√ ≡α±±∞α≥≡ΦΓα■≥± Γ ±δσΣ≤■∙σ∞ ≡ατΣσδσ.
┴ΦßδΦε≥σΩα Ωδα±±εΓ Java ∩ε±≥ε φφε ≡α±°Φ≡ σ≥± τα ±≈σ≥ φεΓ√⌡ Ωδα±±εΓ Φ ∩αΩ≥εΓ. ▌≥Φ Ωδα±±√ ⌠αΩ≥Φ≈σ±ΩΦ ≡α±°Φ≡ ■≥ τ√Ω Java, ∩≡σΣε±≥αΓδ ∩≡επ≡α∞∞Φ±≥α∞ φεΓ√σ Γετ∞εµφε±≥Φ. ┬ Ωα≈σ±≥Γσ ∩≡Φ∞σ≡α ≥αΩεπε ≡α±°Φ≡σφΦ Java ≡α±±∞ε≥≡Φ∞ ΣΓα ∩αΩσ≥α, ≡σαδΦτ≤■∙Φσ Σδ εΩ≡≤µσφΦ Java τφα∞σφΦ≥≤■ ßΦßδΦε≥σΩ≤ STL (Standard Template Library) [8], Ωε≥ε≡α Φ∞σσ≥ ßεδⁿ°εΘ ≤±∩σ⌡ ≤ ∩≡επ≡α∞∞Φ±≥εΓ, Φ±∩εδⁿτ≤■∙Φ⌡ C++.
╧σ≡Γ√Θ Φτ ²≥Φ⌡ ∩αΩσ≥εΓ - SJL (Simple Java Library) [7] ∩≡σΣ±≥αΓδ σ≥ ±εßεΘ φαßε≡ Ωεφ≥σΘφσ≡φ√⌡ Ωδα±±εΓ Φ αδπε≡Φ≥∞εΓ, ∩α≡α∞σ≥≡ΦτεΓαφφ√⌡ ∩ε ≥Φ∩α∞ (Ωδα±±α∞) ±εΣσ≡µα∙Φ⌡± Γ φΦ⌡ εß·σΩ≥εΓ Φ ≡ατ≡αßε≥αφφ√⌡ ≥αΩΦ∞ εß≡ατε∞, ≈≥εß√ ∩≡επ≡α∞∞Φ±≥√ ∞εδΦ Φ±∩εδⁿτεΓα≥ⁿ Φ⌡ Γ ≡ατδΦ≈φ√⌡ ±ε≈σ≥αφΦ ⌡ Γ ±ΓεΦ⌡ ∩≡επ≡α∞∞α⌡. ╩εφ≥σΘφσ≡φ√σ Ωδα±±√ ε∩≡σΣσδ ■≥ Ωεφ≥σΘφσ≡φ√σ εß·σΩ≥√ (ΦδΦ ∩≡ε±≥ε - Ωεφ≥σΘφσ≡√), ≥.σ. εß·σΩ≥√, Ωε≥ε≡√σ ±εΣσ≡µα≥ Γ ±σßσ φαßε≡√ (∞φεµσ±≥Γα) Σ≡≤πΦ⌡ εß·σΩ≥εΓ, εßσ±∩σ≈ΦΓα Σε±≥≤∩ Ω ²≥Φ∞ εß·σΩ≥α∞. ╧≡Φ∞σ≡α∞Φ Ωεφ≥σΘφσ≡εΓ Γδ σ≥± ±∩Φ±εΩ, ∞α±±ΦΓ, ε≈σ≡σΣⁿ Φ ≥.∩. ╤ ΩαµΣ√∞ Ωεφ≥σΘφσ≡ε∞ εß√≈φε ß√Γασ≥ ±Γ ταφε εΣΦφ ΦδΦ φσ±ΩεδⁿΩε Φ≥σ≡α≥ε≡εΓ - εß·σΩ≥εΓ, εßσ±∩σ≈ΦΓα■∙Φ⌡ Σε±≥≤∩ Ω ±εΣσ≡µΦ∞ε∞≤ ±εε≥Γσ≥±≥Γ≤■∙σπε Ωεφ≥σΘφσ≡α Γ φσΩε≥ε≡ε∞ ∩ε≡ ΣΩσ. SJL εßσ±∩σ≈ΦΓασ≥ Γετ∞εµφε±≥Φ ßΦßδΦε≥σΩΦ STL Σδ ∩εδⁿτεΓα≥σδσΘ ±Φ±≥σ∞√ Java.
╩ ±εµαδσφΦ■, Γ ±Φ±≥σ∞σ Java Γ ε≥δΦ≈Φσ ε≥ C++ φσ ∩≡σΣ≤±∞ε≥≡σφε ∩≡σ∩≡ε÷σ±±ε≡α (αΓ≥ε≡√ Java Γδ ■≥± ∩≡Φφ÷Φ∩Φαδⁿφ√∞Φ ∩≡ε≥ΦΓφΦΩα∞Φ ∩≡σ∩≡ε÷σ±±ε≡α). ╧ε²≥ε∞≤ ∩α≡α∞σ≥≡Φ≈σ±ΩΦσ (generic) Ωδα±±√, ≡σαδΦτεΓαφφ√σ Γ τ√Ωσ C++ ≈σ≡στ °αßδεφ√ (templates), εß≡αßα≥√Γασ∞√σ ∩≡σ∩≡ε÷σ±±ε≡ε∞, Φ °Φ≡εΩε Φ±∩εδⁿτ≤σ∞√σ Γ ßΦßδΦε≥σΩσ STL (ΓσΣⁿ ²≥ε ßΦßδΦε≥σΩα °αßδεφεΓ), Γ SJL ≡σαδΦτεΓαφ√ ≈σ≡στ Γ√τεΓ√ ∞σ≥εΣεΓ ±εε≥Γσ≥±≥Γ≤■∙Φ⌡ Ωδα±±εΓ. ┬ ≡στ≤δⁿ≥α≥σ Γε Γ≡σ∞ Γ√∩εδφσφΦ ∩≡επ≡α∞∞√ ∩≡Φ⌡εΣΦ≥± Γ√∩εδφ ≥ⁿ ≈α±≥ⁿ ⌠≤φΩ÷ΦΘ, Ωε≥ε≡√σ Γ STL Γ√∩εδφ ■≥± Γ ∩≡ε÷σ±±σ Ωε∞∩Φδ ÷ΦΦ (Σε∩εδφΦ≥σδⁿφα Φφ≥σ≡∩≡σ≥α÷Φ !), ≈≥ε Ωεφσ≈φε µσ ≡στΩε ±φΦµασ≥ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥ⁿ Ωδα±±εΓ ßΦßδΦε≥σΩΦ SJL ∩ε ±≡αΓφσφΦ■ ± αφαδεπΦ≈φ√∞Φ Ωδα±±α∞Φ STL.
┬ Σ≡≤πεΘ, ßεδσσ ∩ε∩≤δ ≡φεΘ, ≡σαδΦτα÷ΦΦ ßΦßδΦε≥σΩΦ
STL Σδ εΩ≡≤µσφΦ Java - ∩αΩσ≥σ JGL (Java Generic Library) [6],
≡ατ≡αßε≥αφφε∞ ∩εΣ ≡≤ΩεΓεΣ±≥Γε∞ ±α∞επε αΓ≥ε≡α STL └. ╤≥σ∩αφεΓα,
∩εΩαταφε ΩαΩ Γ ²≥ε∞ εΩ≡≤µσφΦΦ ∞εµφε Φφ≥σ≡∩≡σ≥Φ≡εΓα≥ⁿ ∩α≡α∞σ≥≡Φ≈σ±ΩΦσ
(generic) Ωδα±±√. ─δ ²≥επε αΓ≥ε≡√ JGL ≡ατ≡αßε≥αδΦ φαßε≡√ Φφ≥σ≡⌠σΘ±εΓ,
∩ε εΣφε∞≤ Σδ ΩαµΣεπε Φτ εΣΦφφαΣ÷α≥Φ ΓΦΣεΓ Ωεφ≥σΘφσ≡εΓ (Array
,
Deque
,
Dlist
,
Slist
,
HashSet
,
OrderedSet
,
Stack
,
Queue
,
PriorityQueue
,
HashMap
,
OrderedMap
),
Φ Ωεφ≥σΘφσ≡φ√σ Ωδα±±√, ≡σαδΦτ≤■∙Φσ ²≥Φ φαßε≡√ Φφ≥σ≡⌠σΘ±εΓ. ╩αµΣ√Θ
Φφ≥σ≡⌠σΘ± Ωεφ≥σΘφσ≡α ±εε≥Γσ≥±≥Γ≤σ≥ εΣφε∞≤ Φτ Ωδα±±εΓ εß·σΩ≥εΓ,
±εΣσ≡µα∙Φ⌡± Γ ²≥ε∞ Ωεφ≥σΘφσ≡σ, ≥αΩ ≈≥ε ΩαΩ ≥εδⁿΩε ∩ε Γδ σ≥±
φεΓ√Θ Ωδα±± εß·σΩ≥εΓ, ΓΩδ■≈ασ∞√⌡ Γ Ωεφ≥σΘφσ≡, ±εε≥Γσ≥±≥Γ≤■∙ΦΘ
φαßε≡ Φφ≥σ≡⌠σΘ±εΓ Σεδµσφ ß√≥ⁿ ∩ε∩εδφσφ σ∙σ εΣφΦ∞ Φφ≥σ≡⌠σΘ±ε∞.
╬ß≡α∙σφΦσ Ω Ωεφ≥σΘφσ≡≤ Γ±σπΣα ∩≡εΦτΓεΣΦ≥± ≈σ≡στ εΣΦφ Φτ σπε Φφ≥σ≡⌠σΘ±εΓ.
╩εφσ≈φε, ∩ε ±≡αΓφσφΦ■ ± °αßδεφα∞Φ ≥αΩεΘ ±∩ε±εß ∩α≡α∞σ≥≡Φτα÷ΦΦ
Ωδα±±εΓ ∩ε ≥Φ∩α∞ ±εΣσ≡µα∙Φ⌡± Γ φΦ⌡ εß·σΩ≥εΓ Γ√πδ ΣΦ≥ φσ±ΩεδⁿΩε
φσ≤Ωδ■µΦ∞. ─≡≤πΦ∞ φσΣε±≥α≥Ωε∞ ∩αΩσ≥α JGL Γδ σ≥± Γετ∞εµφε±≥ⁿ
ΓΩδ■≈α≥ⁿ Γ σπε Ωεφ≥σΘφσ≡√ ≥εδⁿΩε εß·σΩ≥√, ≥αΩ ≈≥ε ²δσ∞σφ≥α∞Φ Ωεφ≥σΘφσ≡α
"∞α±±ΦΓ ÷σδ√⌡ τφα≈σφΦΘ" ß≤Σ≤≥ φσ ∩εδ ≥Φ∩α int,
α ±εε≥Γσ≥±≥Γ≤■∙Φσ εß·σΩ≥√ Ωδα±±α Int
Φτ ∩αΩσ≥α java.lang.
╚τ ε∩Φ±αφΦ ΣΓ≤⌡ ±∩ε±εßεΓ ≡σαδΦτα÷ΦΦ ßΦßδΦε≥σΩΦ STL Σδ εΩ≡≤µσφΦ Java (SJL Φ JGL) ΓΦΣφε, ≈≥ε τ√Ω Java φ≤µΣασ≥± Γ ßεδσσ ≤Σεßφ√⌡ ±≡σΣ±≥Γα⌡ ∩α≡α∞σ≥≡Φ≈σ±Ωεπε (generic) ∩≡επ≡α∞∞Φ≡εΓαφΦ . ╧≡σΣδεµσφΦ ∩ε ≡α±°Φ≡σφΦ■ Java Γ ²≥ε∞ φα∩≡αΓδσφΦΦ Γ±≥≡σ≈α■≥± Γ ∩≤ßδΦΩα÷Φ ⌡ (±∞., φα∩≡Φ∞σ≡, [12]). ╬ΣφαΩε ∩εΩα ²≥Φ ∩≡σΣδεµσφΦ φσ Γ±≥≡σ≈α■≥ Σεδµφεπε ∩εφΦ∞αφΦ ≤ αΓ≥ε≡εΓ Java.
└∩∩δσ≥√ ²≥ε ∞αδσφⁿΩΦσ ∩≡ΦΩδαΣφ√σ ∩≡επ≡α∞∞√ φα τ√Ωσ Java, Ωε≥ε≡√σ ≡ατ∞σ∙α■≥± φα ±σ≡Γσ≡α⌡ Internet, ≥≡αφ±∩ε≡≥Φ≡≤■≥± ΩδΦσφ≥≤ ∩ε ±σ≥Φ, αΓ≥ε∞α≥Φ≈σ±ΩΦ ≤±≥αφαΓδΦΓα■≥± Φ τα∩≤±Ωα■≥± φα ∞σ±≥σ ΩαΩ ≈α±≥ⁿ ΣεΩ≤∞σφ≥α WWW. └∩∩δσ≥√ ∩ετΓεδ ■≥ Γ±≥αΓδ ≥ⁿ Γ ΣεΩ≤∞σφ≥, ≡α±∩≡ε±≥≡αφ σ∞√Θ ∩ε ±σ≥Φ, ∩εδ , ±εΣσ≡µαφΦσ Ωε≥ε≡√⌡ ∞σφ σ≥± Γε Γ≡σ∞σφΦ (φα∩≡Φ∞σ≡, ≥σΩ≤∙α Σα≥α, ≥σΩ≤∙ΦΘ Ω≤≡± Γαδ■≥√ Φ ≥.∩.), ε≡παφΦτεΓ√Γα≥ⁿ Γ φσ∞ "ßσπ≤∙Φσ ±≥≡εΩΦ",
∞≤δⁿ≥Φ∩δΦΩα÷Φ■. └∩∩δσ≥α∞Φ ∞επ≤≥ ß√≥ⁿ φσßεδⁿ°Φσ ∩≡ΦΩδαΣφ√σ ∩≡επ≡α∞∞√, ≡α±∩≡ε±≥≡αφ σ∞√σ ∩ε Web, ≥αΩΦσ ΩαΩ ΩαδⁿΩ≤δ ≥ε≡, ∩≡σεß≡ατεΓα≥σδⁿ αδπσß≡αΦ≈σ±ΩΦ⌡ Γ√≡αµσφΦΘ, Γ√≈Φ±δΦ≥σδⁿ Φφ≥σπ≡αδεΓ Σδ ∩σ≡ΓεΩ≤≡±φΦΩεΓ, ≡ατδΦ≈φ√σ Φπ≡√ Φ ≥.∩. └∩∩δσ≥√ Ωε∞∩ΦδΦ≡≤■≥± Γ ßαΘ≥ΩεΣ φα Ωε∞∩ⁿ■≥σ≡σ Φ⌡ ≡ατ≡αßε≥≈ΦΩα Φ ≡α±∩≡ε±≥≡αφ ■≥± ∩ε Web Γ ΓΦΣσ ßαΘ≥ΩεΣφ√⌡ ⌠αΘδεΓ.
╩αµΣ√Θ α∩∩δσ≥ Γ√ßΦ≡ασ≥± φα Ωε∞∩ⁿ■≥σ≡ σπε ∩εδⁿτεΓα≥σδ Φτ Web ± ∩ε∞ε∙ⁿ■ ß≡α≤τσ≡α (αΓ≥ε≡√ ±Φ±≥σ∞√ Java Φτπε≥εΓΦδΦ Σδ ²≥επε ±ΓεΘ ß≡α≤τσ≡ HotJava, εΣφαΩε ßεδⁿ°Φφ±≥Γε ∩εδⁿτεΓα≥σδσΘ ∩≡σΣ∩ε≈Φ≥ασ≥ Netscape). ╧ε±δσ ²≥επε εφ ταπ≡≤µασ≥± , Γσ≡Φ⌠Φ÷Φ≡≤σ≥± Φ τα∩≤±Ωασ≥± φα JavaVM φα Ωε∞∩ⁿ■≥σ≡σ ∩εδⁿτεΓα≥σδ , Φ∞σ Σε±≥≤∩ ≥εδⁿΩε Ω JavaVM Φ Ω ∩α∞ ≥Φ, Ωε≥ε≡≤■ εφ ±α∞ ταφΦ∞ασ≥ (≡Φ±. 1). ═Φ Ω ΩαΩΦ∞ Σ≡≤πΦ∞ ≡σ±≤≡±α∞ Ωε∞∩ⁿ■≥σ≡α ∩εδⁿτεΓα≥σδ α∩∩δσ≥ Σε±≥≤∩α φσ Φ∞σσ≥, ≈≥ε εßσ±∩σ≈ΦΓασ≥ τα∙Φ≥≤ Σαφφ√⌡ Φ Σ≡≤πΦ⌡ ∩≡επ≡α∞∞ ∩εδⁿτεΓα≥σδ ε≥ ∩ε≡≈Φ Φ ∩≡σΣε⌡≡αφ σ≥ Ωε∞∩ⁿ■≥σ≡ ∩εδⁿτεΓα≥σδ ε≥ τα≡αµσφΦ ΓΦ≡≤±α∞Φ. ╟α∙Φ≥α ≡σ±≤≡±εΓ Ωε∞∩ⁿ■≥σ≡α, φα Ωε≥ε≡ε∞ Γ√∩εδφ ■≥± α∩∩δσ≥√, ταπ≡≤µασ∞√σ Φτ ±σ≥Φ, Γδ σ≥± ∩≡σΣ∞σ≥ε∞ ε±εß√⌡ ταßε≥ ≡ατ≡αßε≥≈ΦΩεΓ ±Φ±≥σ∞√ Java. ╧ε²≥ε∞≤ Γ ±Φ±≥σ∞σ ∩εΣΣσ≡µΦΓασ≥± ≈σ≥√≡σ ≤≡εΓφ ßστε∩α±φε±≥Φ Java-∩≡επ≡α∞∞ (Γ ≈α±≥φε±≥Φ, α∩∩δσ≥εΓ).
╧σ≡Γ√Θ ≤≡εΓσφⁿ ≡σαδΦτεΓαφ Γ Ωε∞∩Φδ ≥ε≡σ φα ßαΘ≥ΩεΣ. ┬ ε≥δΦ≈Φσ ε≥ ≥≡αΣΦ÷Φεφφ√⌡ Ωε∞∩Φδ ≥ε≡εΓ C/C++, Γ Ωε≥ε≡√⌡ ∩α∞ ≥ⁿ ≡α±∩≡σΣσδ σ≥± Γε Γ≡σ∞ Ωε∞∩Φδ ÷ΦΦ, Γ Ωε∞∩Φδ ≥ε≡σ Java ≡α±∩≡σΣσδσφΦσ ∩α∞ ≥Φ ε≥δεµσφε Σε Γ≡σ∞σφΦ Γ√∩εδφσφΦ . ▌≥ε, σ±≥σ±≥Γσφφε, τα∞σΣδ σ≥ Φφ≥σ≡∩≡σ≥α÷Φ■ Java-∩≡επ≡α∞∞, φε ²≥ε ∞σ°ασ≥ ∩ε≥σφ÷Φαδⁿφ√∞ ⌡αΩΩσ≡α∞ Γτδα∞√Γα≥ⁿ ±Φ±≥σ∞≤, ≥αΩ ΩαΩ Σε±≥≤∩ Ω Φ±⌡εΣφε∞≤ ΩεΣ≤ Java-∩≡επ≡α∞∞√ φσ Σασ≥ Γετ∞εµφε±≥Φ ε≡παφΦτεΓα≥ⁿ φσ±αφΩ÷ΦεφΦ≡εΓαφφ√Θ Σε±≥≤∩ Ω σσ ∩α∞ ≥Φ. ▌≥ε ±Γ ταφε Φ ± ≥σ∞, ≈≥ε Γ τ√Ωσ Java Γ∞σ±≥ε ≤Ωατα≥σδσΘ Φ±∩εδⁿτ≤■≥± ±Φ∞ΓεδΦ≈σ±ΩΦσ εß·σΩ≥φ√σ ±±√δΩΦ Γ Ω≤≈≤, ∩≡Φ≈σ∞ Σε±≥≤∩ Ω ΩαΩε∞≤-δΦßε εß·σΩ≥≤ Γ±σπΣα επ≡αφΦ≈ΦΓασ≥± ²≥Φ∞ εß·σΩ≥ε∞.
┬≥ε≡εΘ ≤≡εΓσφⁿ τα∙Φ≥√ ε±≤∙σ±≥Γδ σ≥ Γσ≡Φ⌠ΦΩα≥ε≡ ßαΘ≥ΩεΣα, Ωε≥ε≡√Θ ∩≡ε±∞α≥≡ΦΓασ≥ ταπ≡≤µσφφ√Θ α∩∩δσ≥ ∩σ≡σΣ σπε Φφ≥σ≡∩≡σ≥α÷ΦσΘ (≡Φ±. 1). ┬σ≡Φ⌠ΦΩα≥ε≡ ßαΘ≥ΩεΣα - ²≥ε φσ±δεµφα ∩≡επ≡α∞∞α Σδ ΣεΩατα≥σδⁿ±≥Γα ≥σε≡σ∞, Ωε≥ε≡α ∩≡εΓσ≡ σ≥ ταπ≡≤µσφφ√Θ ßαΘ≥ΩεΣ φα ≤ΣεΓδσ≥Γε≡σφΦσ Φ∞ ±δσΣ≤■∙Φ⌡ ≤±δεΓΦΘ (²≥Φ ≤±δεΓΦ ∞επ≤≥ ß√≥ⁿ φα≡≤°σφ√ Φτ-τα φσ∩εδαΣεΩ Γ ≡αßε≥σ ±σ≥Φ Φ ∩≡Φ Φ±∩εδⁿτεΓαφΦΦ ≡ατ≡αßε≥≈ΦΩε∞ α∩∩δσ≥α φσΣεß≡εΩα≈σ±≥Γσφφεπε Ωε∞∩Φδ ≥ε≡α Java):
╥αΩα Γσ≡Φ⌠ΦΩα÷Φ ßαΘ≥ΩεΣα ±≥αδα Γετ∞εµφεΘ ßδαπεΣα≡ Γ√ß≡αφφεΘ ±σ∞αφ≥Φ≈σ±ΩεΘ ∞εΣσδΦ τ√Ωα Java, ∩≡Φφ ≥εΘ ±⌡σ∞σ ≡α±∩≡σΣσδσφΦ ∩α∞ ≥Φ Φ ±ε⌡≡αφσφΦ■ Φφ⌠ε≡∞α÷ΦΦ ε ≥Φ∩α⌡ (Ωδα±±α⌡) εß·σΩ≥εΓ Java-∩≡επ≡α∞∞√ φα ∩σ≡ΦεΣ σσ Φφ≥σ≡∩≡σ≥α÷ΦΦ.
╥≡σ≥ΦΘ ≤≡εΓσφⁿ τα∙Φ≥√ ε±≤∙σ±≥Γδ σ≥± ∩≡Φ ΣΦφα∞Φ≈σ±ΩεΘ ταπ≡≤τΩσ Ωδα±±εΓ ∩≡Φ Γ√∩εδφσφΦΦ α∩∩δσ≥α φα Ωε∞∩ⁿ■≥σ≡σ ∩εδⁿτεΓα≥σδ . ┬ε Γ≡σ∞ Γ√∩εδφσφΦ α∩∩δσ≥α εφ ∞εµσ≥ Γ√τ√Γα≥ⁿ ≡ατδΦ≈φ√σ Ωδα±±√ Φτ δεΩαδⁿφεΘ ⌠αΘδεΓεΘ ±Φ±≥σ∞√, α ≥αΩµσ Ωδα±±√ ± ≡ατδΦ≈φ√⌡ ±σ≡Γσ≡εΓ ±σ≥Φ. ─δ εßσ±∩σ≈σφΦ ßεδⁿ°σΘ ßστε∩α±φε±≥Φ ΩαµΣ√Θ Ωδα±±, ταπ≡≤µσφφ√Θ Φτ ±σ≥Φ, Γ√∩εδφ σ≥± Γ ±Γεσ∞ ε≥Σσδⁿφε∞ ∩≡ε±≥≡αφ±≥Γσ Φ∞σφ (∩αΩσ≥σ). ─δ Ωδα±±εΓ, ταπ≡≤µσφφ√⌡ Φτ δεΩαδⁿφεΘ ⌠αΘδεΓεΘ ±Φ±≥σ∞√, ε≡παφΦτ≤σ≥± εß∙σσ ∩≡ε±≥≡αφ±≥Γε Φ∞σφ. ╩επΣα Ωδα±± ±±√δασ≥± φα ΩαΩεΘ-δΦßε Σ≡≤πεΘ Ωδα±±, ταπ≡≤τ≈ΦΩ ±φα≈αδα ∩√≥ασ≥± ≡ατ≡σ°Φ≥ⁿ ±±√δΩ≤ Γ ∩≡σΣσδα⌡ δεΩαδⁿφεπε ∩≡ε±≥≡αφ±≥Γα Φ∞σφ, α τα≥σ∞ Γ ε±≥αδⁿφ√⌡ (Γφσ°φΦ⌡) ∩≡ε±≥≡αφ±≥Γα⌡ Φ∞σφ. ╧ε²≥ε∞≤ φΦ εΣΦφ Φτ δεΩαδⁿφ√⌡ Ωδα±±εΓ φσ ∞εµσ≥ "Φ±∩ε≡≥Φ≥ⁿ" ΩαΩεΘ-δΦßε Γφσ°φΦΘ Ωδα±± Γ ±σ≥Φ. ╧ε ²≥εΘ µσ ∩≡Φ≈Φφσ δεΩαδⁿφ√σ Ωδα±±√ φσ ∞επ≤≥ ε°Φßε≈φε ±±√δα≥ⁿ± φα Ωδα±±√ Φτ Γφσ°φΦ⌡ (Φ∞∩ε≡≥Φ≡εΓαφφ√⌡) ∩≡ε±≥≡αφ±≥Γ Φ∞σφ.
═αΩεφσ÷, ≈σ≥Γσ≡≥√Θ ≤≡εΓσφⁿ τα∙Φ≥√ ±Γ ταφ ± ≥αΩεΘ ε≡παφΦτα÷ΦσΘ Φφ≥σ≡⌠σΘ±εΓ ± ±σ≥σΓ√∞Φ ∩≡ε≥εΩεδα∞Φ (HTTP, FTP Φ Σ≡.), Ωε≥ε≡√σ εßσ±∩σ≈ΦΓα■≥ Σε±≥≤∩ φσ Ωε Γ±σΘ ±σ≥Φ, α ≥εδⁿΩε Ω ≥σ∞ ±σ≡Γσ≡α∞, ± Ωε≥ε≡√⌡ ταπ≡≤µα■≥± Ωδα±±√, Φ±∩εδⁿτ≤σ∞√σ Φφ≥σ≡∩≡σ≥Φ≡≤σ∞√∞ α∩∩δσ≥ε∞. ╩≡ε∞σ ≥επε, Φ∞σσ≥± Γετ∞εµφε±≥ⁿ ε≡παφΦτεΓα≥ⁿ ßα≡ⁿσ≡, ∩≡σΣε≥Γ≡α∙α■∙ΦΘ Σε±≥≤∩ Ω ≡σ±≤≡±α∞ Ωε∞∩ⁿ■≥σ≡α ∩εδⁿτεΓα≥σδ α∩∩δσ≥α ±ε ±≥ε≡εφ√ ±σ≥Φ.
╬≥∞σ≥Φ∞, ≈≥ε σ±δΦ ≥≡σ≥ΦΘ Φ ≈σ≥Γσ≡≥√Θ Φτ Γ√°σ∩σ≡σ≈Φ±δσφφ√⌡ ≤≡εΓφσΘ φσ≥≡≤Σφε ε≡παφΦτεΓα≥ⁿ Φ Γ ±Φ±≥σ∞α⌡ ∩≡επ≡α∞∞Φ≡εΓαφΦ Σ≡≤πΦ⌡ τ√ΩεΓ, ≥ε ε≡παφΦτα÷Φ ∩σ≡Γ√⌡ ΣΓ≤⌡ ≤≡εΓφσΘ Γετ∞εµφα ≥εδⁿΩε Γ ±Φ±≥σ∞σ Java, ≥αΩ ΩαΩ ²≥Φ ≤≡εΓφΦ ε±φεΓαφ√ φα ±ΓεΘ±≥Γα⌡ τ√Ωα Φ ±Φ±≥σ∞√ ∩≡επ≡α∞∞Φ≡εΓαφΦ Java, Ωε≥ε≡√⌡ φσ≥ Γ Σ≡≤πΦ⌡ τ√Ωα⌡.
╩αΩ ∩εΩαταδΦ φσΣαΓφΦσ Γ±σ±≥ε≡εφφΦσ Φ±±δσΣεΓαφΦ ∩ε ßστε∩α±φε±≥Φ Java-α∩∩δσ≥εΓ [14, 15], Γ√°σε∩Φ±αφφ√⌡ ∞σ≡ ßστε∩α±φε±≥Φ ∩εΩα εΩαταδε±ⁿ Σε±≥α≥ε≈φε, ≈≥εß√ εßσ±∩σ≈Φ≥ⁿ ßστε∩α±φεσ ≡α±∩≡ε±≥≡αφσφΦσ Φ Γ√∩εδφσφΦσ α∩∩δσ≥εΓ. ┬ε Γ± Ωε∞ ±δ≤≈ασ ∩εΩα φσ ΦτΓσ±≥φε ∩≡Φ∞σ≡εΓ ≡α±∩≡ε±≥≡αφσφΦ ΓΦ≡≤±εΓ ≈σ≡στ α∩∩δσ≥√ Java. ┬ [15 Φ 16] ∞εµφε ≥αΩµσ φαΘ≥Φ ±εεß∙σφΦ εß ε°ΦßΩα⌡, εßφα≡≤µσφφ√⌡ Γ ≡ατδΦ≈φ√⌡ Ωε∞∩εφσφ≥α⌡ ±Φ±≥σ∞√ Java.
╬ΣφαΩε ± ΓΦ≡≤±α∞Φ Γ±σ εß±≥εΦ≥ φσ ≥αΩ ∩≡ε±≥ε. ═σΣαΓφε Ωε∞∩αφΦ Symantec εß· ΓΦδα ε Γετ∞εµφε±≥Φ ≡α±∩≡ε±≥≡αφσφΦ ΣΓ≤⌡ ≥Φ∩εΓ ΓΦ≡≤±εΓ ± α∩∩δσ≥α∞Φ Java:
┬ ±Γ τΦ ± ²≥Φ∞ ≡ατ≡αßε≥αφε ≡α±°Φ≡σφΦσ ±Φ±≥σ∞√ Norton AntiVirus (NAV) Σδ ±ΩαφΦ≡εΓαφΦ Ωδα±±εΓ (α∩∩δσ≥εΓ) Java φα ∩≡σΣ∞σ≥ εßφα≡≤µσφΦ Γ φΦ⌡ ΓΦ≡≤±εΓ. ▌≥ε ≡α±°Φ≡σφΦσ ±εΣσ≡µΦ≥ ±Ωαφσ≡ ⌠αΘδεΓ, ±εΣσ≡µα∙Φ⌡ Java-Ωδα±±√, Ωε≥ε≡√Θ ∩ετΓεδΦ≥ NAV εßσ±∩σ≈Φ≥ⁿ αφ≥ΦΓΦ≡≤±φ≤■ τα∙Φ≥≤ Java-ΩεΣα Γ ≡σµΦ∞σ ≡σαδⁿφεπε Γ≡σ∞σφΦ, Φ ∞εφΦ≥ε≡ αφ≥ΦΓΦ≡≤±φεΘ ±δ≤µß√ Σδ Java, ≡αßε≥α■∙ΦΘ Γφ≤≥≡Φ Netscape ΦδΦ δ■ßεπε Σ≡≤πεπε ß≡α≤τσ≡α Σδ Web, ∩εΣΣσ≡µΦΓασ∞επε ±Φ±≥σ∞εΘ Java. ╥σΩ≤∙α Γσ≡±Φ αφ≥ΦΓΦ≡≤±φεΘ ±δ≤µß√ NAV ±ΩαφΦ≡≤σ≥ α∩∩δσ≥√, ≡α±±√δασ∞√σ ∩ε Internet Γ ⌠αΘδα⌡ .CLASS, Φ ∞εµσ≥ εßφα≡≤µΦΓα≥ⁿ ΓΦ≡≤±√ ≥Φ∩α Java Type I, Ωε≥ε≡√σ ∞επ≤≥ ≡ατ∞φεµα≥ⁿ± , ∞εΣΦ⌠Φ÷Φ≡≤ ±≥≡αφΦ÷√ HTML. ┬ ±δσΣ≤■∙σΘ Γσ≡±ΦΦ ∩≡σΣ∩εδαπασ≥± ≡σαδΦτεΓα≥ⁿ φεΓ√Θ ±Ωαφσ≡, Ωε≥ε≡√Θ ±∞εµσ≥ εßφα≡≤µΦΓα≥ⁿ ßεδσσ ±δεµφ√σ ΓΦ≡≤±√, ε≥φε± ∙Φσ± Ω ≥Φ∩≤ Java Type II, Ωε≥ε≡√σ ∞επ≤≥ τα≡αµα≥ⁿ ⌠αΘδ√ .CLASS.
╤δσΣ≤σ≥ ε≥∞σ≥Φ≥ⁿ, ≈≥ε ≥≡σßεΓαφΦ Ω εßσ±∩σ≈σφΦ■ ßστε∩α±φε±≥Φ α∩∩δσ≥εΓ αΓ≥ε∞α≥Φ≈σ±ΩΦ Γ√∩εδφ ■≥± Σδ α∩∩δσ≥εΓ, ≡ατ≡αßα≥√Γασ∞√⌡ Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ JDK.
╚φ±≥≡≤∞σφ≥αδⁿφεσ εΩ≡≤µσφΦσ Java Developer's Kit (JDK) ∩≡σΣφατφα≈σφε Σδ ≡ατ≡αßε≥ΩΦ, ε≥δαΣΩΦ Φ ∞εΣΦ⌠ΦΩα÷ΦΦ Java-∩≡επ≡α∞∞ (Γ ∩σ≡Γ≤■ ε≈σ≡σΣⁿ, α∩∩δσ≥εΓ). ┬ σπε ±ε±≥αΓ Γ⌡εΣΦ≥ φσ±ΩεδⁿΩε Φφ±≥≡≤∞σφ≥αδⁿφ√⌡ ∩αΩσ≥εΓ, Γ ≈α±≥φε±≥Φ, ∩αΩσ≥√ java.applett Φ java.AWT.
╧ε±ΩεδⁿΩ≤ ßεδⁿ°α ≈α±≥ⁿ α∩∩δσ≥εΓ Γδ ■≥± ±ε±≥αΓφ√∞Φ ≈α±≥ ∞Φ ("αΩ≥ΦΓφ√∞Φ ∩εδ ∞Φ") ΣεΩ≤∞σφ≥εΓ, ≡α±∩≡ε±≥≡αφ σ∞√⌡ ∩ε ±σ≥Φ, ∩≡Φ Φ⌡ ∩≡επ≡α∞∞Φ≡εΓαφΦΦ ≈α±≥ε ΓετφΦΩασ≥ φσεß⌡εΣΦ∞ε±≥ⁿ εß∞σφα Σαφφ√∞Φ ± εΩεφφ√∞Φ ±Φ±≥σ∞α∞Φ (π≡α⌠Φ≈σ±ΩΦΘ ΓΓεΣ/Γ√ΓεΣ Γ εΩφα). ┬ JDK ∩≡επ≡α∞∞Φ≡εΓαφΦσ ≡αßε≥√ ± εΩφα∞Φ ∩εΣΣσ≡µΦΓασ≥± Φφ±≥≡≤∞σφ≥αδⁿφ√∞ ±≡σΣ±≥Γε∞ Abstract Window Toolkit (AWT), εßσ±∩σ≈ΦΓα■∙Φ∞ Γετ∞εµφε±≥ⁿ ∩Φ±α≥ⁿ α∩∩δσ≥√, Ωε≥ε≡√σ ∞εµφε Γ√∩εδφ ≥ⁿ ΩαΩ ± εΩεφφ√∞Φ ≡σΣαΩ≥ε≡α∞Φ ╬╤ UNIX, ≥αΩ Φ ± εΩεφφ√∞Φ ≡σΣαΩ≥ε≡α∞Φ Σ≡≤πΦ⌡ ╬╤.
─δ ε≥δαΣΩΦ ∩≡επ≡α∞∞φ√⌡ Ωε∞∩εφσφ≥, ≡ατ≡αßα≥√Γασ∞√⌡ Γ εΩ≡≤µσφΦΦ JDK (Γ ≈α±≥φε±≥Φ, α∩∩δσ≥εΓ) Φ±∩εδⁿτ≤σ≥± ε≥δαΣ≈ΦΩ JavaDebugger (JDB). ▌≥ε≥ ε≥δαΣ≈ΦΩ ∩εΣΣσ≡µΦΓασ≥ ∩≡ε±≥εΘ Φ ≤Σεßφ√Θ Φφ≥σ≡⌠σΘ± ± ∩εδⁿτεΓα≥σδσ∞ JavaDebuggerAPI, σπε ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ Σδ ε≥δαΣΩΦ ≤Σαδσφφ√⌡ ∩≡επ≡α∞∞ ±εΓ∞σ±≥φε ± ß≡α≤τσ≡ε∞ HotJava, α ≥αΩµσ Σδ ε≥δαΣΩΦ ∩≡επ≡α∞∞, φα∩Φ±αφφ√⌡ φα ∩εΣ∞φεµσ±≥Γσ Java Σδ ≡ατ≡αßε≥ΩΦ ±Ω≡Φ∩≥εΓ - τ√Ωσ JavaScript.
─δ ≡αßε≥√ Γ ε∩σ≡α÷Φεφφ√⌡ ±Φ±≥σ∞α⌡ Windows 95, Windows NT, UNIX (Γ ≥ε∞ ≈Φ±δσ Solaris Φ Linux) Φ Macintosh ≥σΩ≤∙≤■ Γσ≡±Φ■ JDK (Γ φα±≥ε ∙σσ Γ≡σ∞ ²≥ε Γσ≡±Φ 2.0 ε≥ 18 ⌠σΓ≡αδ 1997 π.) ∞εµφε ταπ≡≤τΦ≥ⁿ φσ∩ε±≡σΣ±≥Γσφφε ± Web-±σ≡Γσ≡α Ωε∞∩αφΦΦ Sun ∩ε αΣ≡σ±≤ java.sun.com . ╧ε ²≥ε∞≤ µσ αΣ≡σ±≤ Σε±≥≤∩σφ Φ ß≡α≤τσ≡ HotJava, φα∩Φ±αφφ√Θ φα Java, Φ Ωε∞∩δσΩ≥ ΣεΩ≤∞σφ≥α÷ΦΦ ∩ε ±Φ±≥σ∞σ Java. ╨ατ∞σ≡ ΣΦ±≥≡Φß≤≥ΦΓα JDK (Γ ≤∩αΩεΓαφφε∞ ΓΦΣσ) ±ε±≥αΓδ σ≥ 4 - 5 ∞σπαßαΘ≥. ╤εΓσ≥√ ∩ε ≤±≥αφεΓΩσ JDK ±∞., φα∩≡Φ∞σ≡ Γ [5] (∩≡ΦδεµσφΦσ └). ╚φ±≥≡≤∞σφ≥αδⁿφεσ εΩ≡≤µσφΦσ JDK ±εΣσ≡µΦ≥ ßΦßδΦε≥σ≈φ√σ Ωδα±±√ Φ ∩αΩσ≥√, ±≤∙σ±≥Γσφφε ≤∩≡ε∙α■∙Φσ ∩≡επ≡α∞∞Φ≡εΓαφΦσ Φ ε≥δαΣΩ≤ α∩∩δσ≥εΓ.
╟Σσ±ⁿ ∩εΣ ²⌠⌠σΩ≥ΦΓφε±≥ⁿ■ Φ∞σσ≥± Γ ΓΦΣ≤ ±Ωε≡ε±≥ⁿ Γ√∩εδφσφΦ Java-∩≡επ≡α∞∞. ╧ε±ΩεδⁿΩ≤ Java-∩≡επ≡α∞∞√ Φφ≥σ≡∩≡σ≥Φ≡≤■≥± φα JavaVM, εφΦ, σ±≥σ±≥Γσφφε, Γ√∩εδφ ■≥± ∞σΣδσφφσσ, ≈σ∞ ∩≡επ≡α∞∞√, ≡ατ≡αßε≥αφφ√σ ± ∩ε∞ε∙ⁿ■ ε∩≥Φ∞ΦτΦ≡≤■∙Φ⌡ Ωε∞∩Φδ ≥ε≡εΓ C/C++. ╚τ∞σ≡σφΦ φα ßσφ≈-∞α≡Ωα⌡ ∩εΩαταδΦ, ≈≥ε Java-∩≡επ≡α∞∞√ Γ√∩εδφ ■≥± ∩≡Φ∞σ≡φε Γ 30 ≡ατ ∞σΣδσφφσσ C-∩≡επ≡α∞∞ φα εΣφε∩≡ε÷σ±±ε≡φ√⌡ Ωε∞∩ⁿ■≥σ≡α⌡ (Γ ≈α±≥φε±≥Φ, φα ∩σ≡±εφαδⁿφ√⌡ Ωε∞∩ⁿ■≥σ≡α⌡) [17]. ═α ∩α≡αδδσδⁿφ√⌡ Ωε∞∩ⁿ■≥σ≡φ√⌡ ±Φ±≥σ∞α⌡ ≡ατ≡√Γ Σε±≥Φπασ≥ 50 ≡ατ. ╧ε²≥ε∞≤, Ωεφσ≈φε, ±≤∙σ±≥Γ≤σ≥ ∩≡εßδσ∞α ∩εΓ√°σφΦ ²⌠⌠σΩ≥ΦΓφε±≥Φ Java-∩≡επ≡α∞∞. ┬ ∞σφⁿ°σΘ ±≥σ∩σφΦ ²≥α ∩≡εßδσ∞α αΩ≥≤αδⁿφα Σδ α∩∩δσ≥εΓ, ΓσΣⁿ ²≥ε φσßεδⁿ°Φσ Φφ≥σ≡αΩ≥ΦΓφ√σ ∩≡επ≡α∞∞√, Φ ±Ωε≡ε±≥ⁿ Φ⌡ Γ√∩εδφσφΦ Γ ßεδⁿ°Φφ±≥Γσ ±δ≤≈ασΓ ≤ΣεΓδσ≥Γε≡ σ≥ Φ⌡ ∩εδⁿτεΓα≥σδσΘ.
┬ ≥σ⌡ ≡σΣΩΦ⌡ ±δ≤≈α ⌡, ΩεπΣα ΓετφΦΩασ≥ ∩ε≥≡σßφε±≥ⁿ ≤ΓσδΦ≈Φ≥ⁿ ±Ωε≡ε±≥ⁿ Γ√∩εδφσφΦ α∩∩δσ≥α, ∞εµφε Γε±∩εδⁿτεΓα≥ⁿ± ΣΦφα∞Φ≈σ±ΩΦ∞ Ωε∞∩Φδ ≥ε≡ε∞ Java (just-in-time compiler), Ωε≥ε≡√Θ ≡αßε≥ασ≥ ∩α≡αδδσδⁿφε ± Φφ≥σ≡∩≡σ≥α÷ΦσΘ α∩∩δσ≥α (±∞. ≡Φ±. 1) Φ ∩σ≡σΓεΣΦ≥ ßαΘ≥ΩεΣ Γ εß·σΩ≥φ√Θ ΩεΣ Ωε∞∩ⁿ■≥σ≡α, φα Ωε≥ε≡ε∞ Γ√∩εδφ σ≥± α∩∩δσ≥. ▌≥ε≥ εß·σΩ≥φ√Θ ΩεΣ ε⌠ε≡∞δ σ≥± ΩαΩ εß√≈φα ∩εΣ∩≡επ≡α∞∞α Φ (∩ε±δσ ταπ≡≤τΩΦ) Γ√τ√Γασ≥± Φτ JavaVM (∩≡Φ ∩≡επ≡α∞∞Φ≡εΓαφΦΦ φα Java ≡ατ≡σ°ασ≥± Φ±∩εδⁿτεΓα≥ⁿ ∩εΣ∩≡επ≡α∞∞√, Γ√∩εδφ σ∞√σ Γ εß·σΩ≥φε∞ ΩεΣσ Ωε∞∩ⁿ■≥σ≡α, φα Ωε≥ε≡ε∞ ≡αßε≥ασ≥ JavaVM (native subroutines); ²≥Φ ∩εΣ∩≡επ≡α∞∞√ ±≈Φ≥α■≥± ∩εΣ∩≡επ≡α∞∞α∞Φ ±α∞εΘ JavaVM). ╩αΩ ∩εΩαταδΦ Φτ∞σ≡σφΦ φα ßσφ≈-∞α≡Ωα⌡, ∩≡Φ ²≥ε∞ Γ√∩εδφσφΦσ α∩∩δσ≥α ≤±Ωε≡ σ≥± ∩≡Φ∞σ≡φε Γ 10 ≡ατ.
═ε Γ εΩ≡≤µσφΦΦ Java ≡ατ≡αßα≥√Γα■≥± φσ ≥εδⁿΩε α∩∩δσ≥√. Java - ≤φΦΓσ≡±αδⁿφ√Θ τ√Ω ∩≡επ≡α∞∞Φ≡εΓαφΦ , Φ σπε ≤Σεßφε Φ±∩εδⁿτεΓα≥ⁿ Σδ φα∩Φ±αφΦ ΩδΦσφ≥±ΩΦ⌡ ∩≡επ≡α∞∞, ßΦßδΦε≥σΩ, ∩εΣΣσ≡µΦΓα■∙Φ⌡ ∩εδⁿτεΓα≥σδⁿ±ΩΦσ Φφ≥σ≡⌠σΘ±√ (ε±εßσφφε Γ ≥σ⌡ ±δ≤≈α ⌡, ΩεπΣα εφΦ Σεδµφ√ ⌠≤φΩ÷ΦεφΦ≡εΓα≥ⁿ Γ φσεΣφε≡εΣφεΘ ±σ≥Φ), ∩≡ΦΩδαΣφ√⌡ ∩αΩσ≥εΓ Φ ≥.∩. ┬±σεß∙σσ ≤Γδσ≈σφΦσ α∩∩δσ≥α∞Φ φσ±ΩεδⁿΩε ε≥εΣΓΦφ≤δε φα Γ≥ε≡εΘ ∩δαφ ²≥≤ ±≥ε≡εφ≤ Java, φε ²≥ε - Γ≡σ∞σφφεσ ΓδσφΦσ. ╙µσ ±σΘ≈α± ∩≤ßδΦΩ≤σ≥± ∞φεπε ≡αßε≥ ∩ε ∩≡Φ∞σφσφΦ ∞ Java, φσ ±Γ ταφφ√∞ ± ≡ατ≡αßε≥ΩεΘ α∩∩δσ≥εΓ, Φ ≈Φ±δε ≥αΩΦ⌡ ≡αßε≥ ß≤Σσ≥ ≤ΓσδΦ≈ΦΓα≥ⁿ± ⌡ε≥ ß√ ∩ε≥ε∞≤, ≈≥ε ∩≡εßδσ∞α ∩≡επ≡α∞∞Φ≡εΓαφΦ Φ ≡α±∩≡ε±≥≡αφσφΦ α∩∩δσ≥εΓ Γε ∞φεπε∞ Φ±≈σ≡∩αδα ±σß (²≥ε Σεδµφε ß√≥ⁿ ΓΦΣφε Φ Φτ ΣαφφεΘ ∩≤ßδΦΩα÷ΦΦ). ╧≡Φ Φ±∩εδⁿτεΓαφΦΦ Java Σδ ≡ατ≡αßε≥ΩΦ ßεδσσ ±δεµφεπε ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ , ≈σ∞ α∩∩δσ≥√, ∩≡εßδσ∞√ φαΣσµφε±≥Φ Φ ²⌠⌠σΩ≥ΦΓφε±≥Φ (∩≡εΦτΓεΣΦ≥σδⁿφε±≥Φ) Java-∩≡επ≡α∞∞, α ≥αΩµσ ∩≡εßδσ∞√, ±Γ ταφφ√σ ± φσεß⌡εΣΦ∞ε±≥ⁿ■ τα∙Φ≥√ πδεßαδⁿφεΘ ±σ≥Φ ε≥ ΓΦ≡≤±εΓ, Σεδµφ√ ß√≥ⁿ ∩ε±≥αΓδσφ√ ∩ε φεΓε∞≤.
╨α±±∞ε≥≡Φ∞ ∩≡εßδσ∞≤ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥Φ ±≡αΓφΦ≥σδⁿφε Ω≡≤∩φ√⌡ ∩≡ΦΩδαΣφ√⌡ Java-∩≡επ≡α∞∞. ┼±δΦ Σδ ßεδⁿ°Φφ±≥Γα α∩∩δσ≥εΓ ∩≡εßδσ∞√ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥Φ Γεεß∙σ φσ ±≥ε δε, ≥αΩ ΩαΩ Σδ ∩εδⁿτεΓα≥σδσΘ εφΦ Γ√∩εδφ δΦ±ⁿ "∞πφεΓσφφε", ≥ε τα∞σΣδσφΦσ ∩≡εΦτΓεδⁿφ√⌡ ∩≡ΦΩδαΣφ√⌡ ∩≡επ≡α∞∞ ∩ε≈≥Φ φα ΣΓα ∩ε≡ ΣΩα φσΦτßσµφε ∩≡ΦΓσΣσ≥ Ω ε≥Ωατ≤ ε≥ Φ⌡ Φ±∩εδⁿτεΓαφΦ . ╨ατ≡αßε≥≈ΦΩΦ ±Φ±≥σ∞√ Java Φ Java-∩≡ΦδεµσφΦΘ ⌡ε≡ε°ε ∩εφΦ∞αδΦ ²≥ε ± ±α∞επε φα≈αδα, φε, ΩαΩ ±ΓΦΣσ≥σδⁿ±≥Γ≤■≥ Φ⌡ ≡αφφΦσ ∩≤ßδΦΩα÷ΦΦ (±∞., φα∩≡Φ∞σ≡, [1]), εφΦ φαΣσ δΦ±ⁿ, ≈≥ε JavaVM φα±≥εδⁿΩε ⌡ε≡ε°ΦΘ Φφ≥σ≡∩≡σ≥α≥ε≡, ≈≥ε τα∞σΣδσφΦσ ε≥ Φφ≥σ≡∩≡σ≥α÷ΦΦ ß≤Σσ≥ φσ±≤∙σ±≥Γσφφ√∞. ╩≡ε∞σ ≥επε, εφΦ ≡σΩε∞σφΣεΓαδΦ ∩εΓ√°α≥ⁿ ß√±≥≡εΣσΘ±≥ΓΦσ Java-∩≡επ≡α∞∞ ∩≤≥σ∞ Φ±∩εδⁿτεΓαφΦ Γ√±εΩε²⌠⌠σΩ≥ΦΓφ√⌡ ßΦßδΦε≥σ≈φ√⌡ ∩εΣ∩≡επ≡α∞∞, ≡ατ≡αßε≥αφφ√⌡ φα C/C++ (native methods). ╩ ±εµαδσφΦ■, ΩαΩ ∩εΩαταδΦ Φτ∞σ≡σφΦ (±∞. Γ√°σ), Φ⌡ φαΣσµΣ√ ε∩≡αΓΣαδΦ±ⁿ δΦ°ⁿ Σδ φσßεδⁿ°Φ⌡ α∩∩δσ≥εΓ, Ωε≥ε≡√σ, ∩ε ±≤∙σ±≥Γ≤, Γδ ■≥± CGI-±Ω≡Φ∩≥α∞Φ Φ Σδ ≡ατ≡αßε≥ΩΦ Ωε≥ε≡√⌡ Σε±≥α≥ε≈φε ∩≡Φ∞Φ≥ΦΓφεπε ∩εΣ∞φεµσ±≥Γα Java - τ√Ωα JavaScript [10]. ╩επΣα ²≥ε ß√δε ε±ετφαφε, ±≥αδΦ ∩≡σΣ∩≡ΦφΦ∞α≥ⁿ± ≤±ΦδΦ ∩ε ∩εΓ√°σφΦ■ ß√±≥≡εΣσΘ±≥ΓΦ Java-∩≡επ≡α∞∞.
╧σ≡Γ√∞ °απε∞ Γ ²≥ε∞ φα∩≡αΓδσφΦΦ ß√δα α∩∩α≡α≥φα ≡ατ≡αßε≥Ωα JavaVM, ∩≡σΣ∩≡Φφ ≥α Ωε∞∩αφΦσΘ Sun, φε Java-∩≡ε÷σ±±ε≡ φσ ε∩≡αΓΣαδ ΓετδαπαΓ°Φ⌡± φα φσπε εµΦΣαφΦΘ ∩ε ≡στΩε∞≤ ≤ΓσδΦ≈σφΦ■ ß√±≥≡εΣσΘ±≥ΓΦ Java-∩≡επ≡α∞∞. ╩≡ε∞σ ≥επε, σ±δΦ Σδ φε≡∞αδⁿφεπε Γ√∩εδφσφΦ Java-∩≡επ≡α∞∞ ≥≡σß≤σ≥± ±∩σ÷Φαδⁿφ√Θ ∩≡ε÷σ±±ε≡, ≥ε ²≥ε ±≤∙σ±≥Γσφφε ∞σφ σ≥ ±≥α≥≤± τ√Ωα Java, ΩαΩ ≤φΦΓσ≡±αδⁿφεπε τ√Ωα Σδ Web, ≥αΩ ΩαΩ ε≈σΓΦΣφε, ≈≥ε ΣαδσΩε φσ Γε Γ±σ⌡ ≤τδα⌡ Web Φ∞σ■≥± Java-∩≡ε÷σ±±ε≡√.
╧ε²≥ε∞≤ ß√δΦ ∩≡σΣ∩≡Φφ ≥√ ∩ε∩√≥ΩΦ ≤ΓσδΦ≈Φ≥ⁿ ß√±≥≡εΣσΘ±≥ΓΦσ Java-∩≡επ≡α∞∞ ± ∩ε∞ε∙ⁿ■ ε∩≥Φ∞ΦτΦ≡≤■∙Φ⌡ Ωε∞∩Φδ ≥ε≡εΓ, ∩σ≡σΓεΣ ∙Φ⌡ Java-∩≡επ≡α∞∞≤ Γ ε∩≥Φ∞ΦτΦ≡εΓαφφ√Θ εß·σΩ≥φ√Θ ΩεΣ Ωε∞∩ⁿ■≥σ≡α, φα Ωε≥ε≡ε∞ εφα ß≤Σσ≥ Γ√∩εδφ ≥ⁿ± . ╩ε∞∩αφΦ JavaSoft (Σε≈σ≡φ Ωε∞∩αφΦ ⌠Φ≡∞√ Sun ∩ε ∩≡εΦτΓεΣ±≥Γ≤ ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ , ±Γ ταφφεπε ± Java) ≡ατ≡αßε≥αδα ∩σ≡Γ√Θ ΣΦφα∞Φ≈σ±ΩΦΘ ε∩≥Φ∞ΦτΦ≡≤■∙ΦΘ Ωε∞∩Φδ ≥ε≡ Java (just-in-time-compiler) [13]. ▌≥ε≥ Ωε∞∩Φδ ≥ε≡ Γ√τ√Γασ≥± ∩ε ∩≡απ∞σ Φφ≥σ≡∩≡σ≥α≥ε≡ε∞ Java-ßαΘ≥ΩεΣα (JavaVM) Φ Γ√∩εδφ σ≥± ∩α≡αδδσδⁿφε JavaVM (φα εΣφε∩≡ε÷σ±±ε≡φε∞ Ωε∞∩ⁿ■≥σ≡σ - Γ ≡σµΦ∞σ ≡ατΣσδσφΦ Γ≡σ∞σφΦ), Ωε∞∩ΦδΦ≡≤ Φτ ∩σ≡σΣαφφεπε σ∞≤ ßαΘ≥ΩεΣα ε∩≥Φ∞ΦτΦ≡εΓαφφ√Θ εß·σΩ≥φ√Θ ΩεΣ. ╧α≡αδδσδⁿφε ± Ωε∞∩Φδ ÷ΦσΘ ßαΘ≥ΩεΣα JavaVM ∩≡εΣεδµασ≥ Φφ≥σ≡∩≡σ≥Φ≡εΓα≥ⁿ σπε. ╩επΣα Ωε∞∩Φδ ÷Φ ταΓσ≡°ασ≥± , ΣΦφα∞Φ≈σ±ΩΦΘ ταπ≡≤τ≈ΦΩ ταπ≡≤µασ≥ ∩εδ≤≈σφφ√Θ εß·σΩ≥φ√Θ ΩεΣ ΩαΩ ∩εΣ∩≡επ≡α∞∞≤ Φφ≥σ≡∩≡σ≥Φ≡≤σ∞επε ßαΘ≥ΩεΣα, α JavaVM Γ√τ√Γασ≥ ²≥≤ ∩εΣ∩≡επ≡α∞∞≤, ΩαΩ εφα Γ√τΓαδα ß√ δ■ß≤■ Σ≡≤π≤■ εß·σΩ≥φ≤■ (native) ∩εΣ∩≡επ≡α∞∞≤ Φφ≥σ≡∩≡σ≥Φ≡≤σ∞εΘ Java-∩≡επ≡α∞∞√, Φ ≥σ∞ ±α∞√∞ ⌠αΩ≥Φ≈σ±ΩΦ ∩≡σΩ≡α∙ασ≥ Φφ≥σ≡∩≡σ≥α÷Φ■ ßαΘ≥ΩεΣα (±⌡σ∞α≥Φ≈σ±ΩΦ ²≥ε ∩εΩαταφε φα ≡Φ±. 1). ─Φφα∞Φ≈σ±ΩΦσ Ωε∞∩Φδ ≥ε≡√ Java ≡σαδΦτεΓαφ√ Φ Σ≡≤πΦ∞Φ Ωε∞∩αφΦ ∞Φ, ταφΦ∞α■∙Φ∞Φ± ≡ατ≡αßε≥ΩεΘ ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ Java. ═ε, ΩαΩ ≤µσ ≤∩ε∞Φφαδε±ⁿ, ∩≡Φ∞σφσφΦσ ΣΦφα∞Φ≈σ±Ωεπε Ωε∞∩Φδ ≥ε≡α ∩εΓ√°ασ≥ ß√±≥≡εΣσΘ±≥ΓΦσ Java-∩≡επ≡α∞∞√ δΦ°ⁿ φα ∩ε≡ ΣεΩ, ≥αΩ ≈≥ε ∩≡εΦπ≡√° ε±≥ασ≥± Γσ±ⁿ∞α ε∙≤≥Φ∞√∞.
╧ε²≥ε∞≤ ß√δ ∩≡σΣ∩≡Φφ ≥ σ∙σ εΣΦφ °απ: ≡σαδΦτεΓαφ√ ∩σ≡Γ√σ ε∩≥Φ∞ΦτΦ≡≤■∙Φσ Ωε∞∩Φδ ≥ε≡√ Java Γ εß·σΩ≥φ√Θ ΩεΣ ≡ατδΦ≈φ√⌡ Ωε∞∩ⁿ■≥σ≡εΓ [18, 19]. ╧≡Φ ²≥ε∞ Σαµσ φσ Γ±σπΣα Φ±∩εδⁿτ≤σ≥± ßαΘ≥ΩεΣ Γ Ωα≈σ±≥Γσ Γφ≤≥≡σφφσπε ∩≡σΣ±≥αΓδσφΦ Φ±⌡εΣφεΘ Java-∩≡επ≡α∞∞√. ┴εδσσ ≥επε, ≤µσ ∩≡σΣ∩≡ΦφΦ∞α■≥± ∩σ≡Γ√σ ∩ε∩√≥ΩΦ ≡ατ≡αßε≥ΩΦ Ωε∞∩Φδ ≥ε≡εΓ Java Σδ ∞ε∙φ√⌡ ∞φεπε∩≡ε÷σ±±ε≡φ√⌡ Ωε∞∩ⁿ■≥σ≡φ√⌡ ±Φ±≥σ∞. ╨σαδΦτα÷Φ ≥αΩΦ⌡ Ωε∞∩Φδ ≥ε≡εΓ ±Σσδασ≥ Java Γ∩εδφσ ≤φΦΓσ≡±αδⁿφ√∞ ∞ε∙φ√∞ τ√Ωε∞ ∩≡επ≡α∞∞Φ≡εΓαφΦ . ╧≡αΓΣα ²≥ε ∩ε±≥αΓΦ≥ ∩σ≡σΣ ≡ατ≡αßε≥≈ΦΩα∞Φ Φ ∩εδⁿτεΓα≥σδ ∞Φ Java φεΓ√σ ±δεµφ√σ ∩≡εßδσ∞√.
╨σ⌠δσΩ±ΦσΘ φατ√Γασ≥± Γετ∞εµφε±≥ⁿ ∞σφ ≥ⁿ ±ΓεΘ±≥Γα εΩ≡≤µσφΦ , Γ Ωε≥ε≡ε∞ Γ√∩εδφ σ≥± ∩≡επ≡α∞∞α, Φ τα ±≈σ≥ ²≥επε Φτ∞σφΦ≥ⁿ ∩εΓσΣσφΦσ ±α∞εΘ ∩≡επ≡α∞∞√. ╠φεπΦσ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√σ τ√ΩΦ Φ Φ⌡ ±Φ±≥σ∞√ ∩≡επ≡α∞∞Φ≡εΓαφΦ (φα∩≡Φ∞σ≡, CLOS, Smalltalk Φ Σ≡.) Γδ ■≥± ≡σ⌠δσΩ±ΦΓφ√∞Φ, ≥.σ. ±εΣσ≡µα≥ τ√ΩεΓ√σ Φ ±Φ±≥σ∞φ√σ ±≡σΣ±≥Γα, ± ∩ε∞ε∙ⁿ■ Ωε≥ε≡√⌡ ∞εµφε ∞σφ ≥ⁿ ∩α≡α∞σ≥≡√ εΩ≡≤µσφΦ . ╨σ⌠δσΩ±Φ ε≈σφⁿ ≤Σεßφα ∩≡Φ ≡ατ≡αßε≥Ωσ ∩≡επ≡α∞∞φ√⌡ ±Φ±≥σ∞, ≥αΩ ΩαΩ ±εεß∙ασ≥ Φ∞ Σε∩εδφΦ≥σδⁿφ≤■ πΦßΩε±≥ⁿ, ±∩ε±εßφε±≥ⁿ φα±≥≡αΦΓα≥ⁿ± φα ≡ατδΦ≈φ√σ εΩ≡≤µσφΦ , Γετ∞εµφε±≥ⁿ ΓταΦ∞εΣσΘ±≥ΓεΓα≥ⁿ ± ∩≡επ≡α∞∞α∞Φ, Ωε≥ε≡√σ Γ√∩εδφ ■≥± Γ Σ≡≤πΦ⌡ ±Φ±≥σ∞α⌡ ∩≡επ≡α∞∞Φ≡εΓαφΦ .
Java ± ±α∞επε φα≈αδα ≡ατ≡αßα≥√Γαδ± ΩαΩ ≡σ⌠δσΩ±ΦΓφ√Θ τ√Ω. ┬ Java ε∩≡σΣσδσφ Ωδα±± Object, Γδ ■∙ΦΘ± Ωε≡φσ∞ Φσ≡α≡⌡ΦΦ Ωδα±±εΓ ∩ε φα±δσΣεΓαφΦ■: δ■ßεΘ Ωδα±± Java φα±δσΣ≤σ≥ Ωδα±± Object. ┬ Ωδα±±σ Object ε∩≡σΣσδσφ Σε±≥≤∩ Ω ±Φ±≥σ∞φεΘ Φφ⌠ε≡∞α÷ΦΦ, Ωε≥ε≡≤■ ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ Java-∩≡επ≡α∞∞α⌡. ═αδΦ≈Φσ Ωδα±±α Object ≤µσ ±εεß∙ασ≥ ε∩≡σΣσδσφφ√σ ≡σ⌠δσΩ±ΦΓφ√σ ±ΓεΘ±≥Γα ±Φ±≥σ∞σ Java.
─ε∩εδφΦ≥σδⁿφ√σ Γετ∞εµφε±≥Φ ∩ε ≡σαδΦτα÷ΦΦ ≡σ⌠δσΩ±ΦΓφ√⌡ Java-∩≡επ≡α∞∞ εßσ±∩σ≈ΦΓα■≥± ∩αΩσ≥ε∞ JRI (Java Reflection Interface), Γ Ωε≥ε≡ε∞ ε∩≡σΣσδσφ√ ±∩ε±εß√ ε∩≡σΣσδσφΦ ≡σ⌠δσΩ±ΦΓφεΘ Φφ⌠ε≡∞α÷ΦΦ Σδ Ωδα±±εΓ Φ ∞σ≥εΣεΓ ±Φ±≥σ∞√ Java. ╨σ⌠δσΩ±ΦΓφα Φφ⌠ε≡∞α÷Φ , ±Γ ταφφα ± φσΩε≥ε≡√∞ Ωδα±±ε∞, ΓΩδ■≈ασ≥ Γ ±σß ε∩Φ±αφΦσ σπε ∩≡ΦΓΦδσπΦΘ Σε±≥≤∩α Ω ≡ατδΦ≈φ√∞ Ωδα±±α∞, Φ⌡ ∩εδ ∞ Φ ∞σ≥εΣα∞, Φ⌡ ±≤∩σ≡Ωδα±±α∞, Ω Φφ≥σ≡⌠σΘ±α∞, ∩≡Φ±εσΣΦφσφφ√∞ Ω ²≥Φ∞ Ωδα±±α∞, α ≥αΩµσ Φφ⌠ε≡∞α÷Φ■ ε ±ΓεΘ±≥Γα⌡ σπε ∩εδσΘ Φ ∞σ≥εΣεΓ.
╧≡εßδσ∞α ≡ατ≡αßε≥ΩΦ ≡σ⌠δσΩ±ΦΓφ√⌡ Γετ∞εµφε±≥σΘ Σδ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√⌡ τ√ΩεΓ ∩≡επ≡α∞∞Φ≡εΓαφΦ ±Γ ταφα ± ∩≡εßδσ∞εΘ ≡σαδΦτα÷ΦΦ Γετ∞εµφε±≥Φ ΓταΦ∞εΣσΘ±≥ΓΦ ≡ατδΦ≈φ√⌡ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√⌡ εΩ≡≤µσφΦΘ, ≥.σ. ± ∩≡εßδσ∞εΘ ≡ατ≡αßε≥ΩΦ ORB (Object Request Broker) [21]. ╤σΘ≈α± ≤µσ ≡ατ≡αßε≥αφε φσ±ΩεδⁿΩε Ωε∞∞σ≡≈σ±ΩΦ⌡ ORB Σδ Java [22]. ╚τ≤≈σφΦσ ²≥Φ⌡ ORB ∩εΩατ√Γασ≥, ≈≥ε τ√Ω Java πε≡ατΣε δ≤≈°σ, ≈σ∞, φα∩≡Φ∞σ≡ C++, ∩≡Φ±∩ε±εßδσφ Ω ≡σ⌠δσΩ±ΦΓφε∞≤ ∩≡επ≡α∞∞Φ≡εΓαφΦ■ Φ ≡σαδΦτα÷ΦΦ ORB. ╨ατΓΦ≥Φσ ≡σ⌠δσΩ±ΦΓφεπε ∩≡επ≡α∞∞Φ≡εΓαφΦ φα Java ß≤Σσ≥ ±∩ε±εß±≥ΓεΓα≥ⁿ σ∙σ ßεδσσ °Φ≡εΩε∞≤ ≡α±∩≡ε±≥≡αφσφΦ■ ±Φ±≥σ∞√ Java. ┬∞σ±≥σ ± ≥σ∞ Java Γ σσ ≥σΩ≤∙σ∞ ±ε±≥ε φΦΦ Φ∞σσ≥ ≡ Σ φσΣε±≥α≥ΩεΓ, ∩≡σ∩ ≥±≥Γ≤■∙Φ⌡ σσ Φ±∩εδⁿτεΓαφΦ■ Σδ ≡σαδΦτα÷ΦΦ ≡α±∩≡σΣσδσφφ√⌡ ∩≡ΦΩδαΣφ√⌡ ±Φ±≥σ∞. ┬ [21] ε≥∞σ≈σφ√ ±δσΣ≤■∙Φσ φσΣε±≥α≥ΩΦ Java Γ ²≥ε∞ ∩δαφσ:
╬≥±≤≥±≥ΓΦσ τ√ΩεΓεΘ ∩εΣΣσ≡µΩΦ ≤∩≡αΓδσφΦ ≥≡αφταΩ÷Φ ∞Φ Φ Φ⌡ µ≤≡φαδΦτα÷ΦσΘ.
╧σ≡σ≈Φ±δσφφ√σ φσΣε±≥α≥ΩΦ ∞σ°α■≥ ∩≡Φ∞σφσφΦ■ Java Σδ
≡ατ≡αßε≥ΩΦ ±σ≡ⁿστφ√⌡ ≡α±∩≡σΣσδσφφ√⌡ ±Φ±≥σ∞ Γ ≡α∞Ωα⌡ ±≥αφΣα≡≥α
CORBA. ┬ φα±≥ε ∙σσ Γ≡σ∞ ΓσΣ≤≥± Φφ≥σφ±ΦΓφ√σ Φ±±δσΣεΓαφΦ ∩ε ∩≡σεΣεδσφΦ■
≤Ωαταφφ√⌡ φσΣε±≥α≥ΩεΓ.
┬ ΣαφφεΘ ∩≤ßδΦΩα÷ΦΦ ß√δα ±Σσδαφα ∩ε∩√≥Ωα ετφαΩε∞Φ≥ⁿ °Φ≡εΩΦσ Ω≡≤πΦ ∩≡επ≡α∞∞Φ±≥εΓ ± ε±φεΓφ√∞Φ ±ΓεΘ±≥Γα∞Φ Φ ε±εßσφφε±≥ ∞Φ ±Φ±≥σ∞√ ∩≡επ≡α∞∞Φ≡εΓαφΦ Java. Java - ∩σ≡Γα ±Φ±≥σ∞α ∩≡επ≡α∞∞Φ≡εΓαφΦ , εßσ±∩σ≈ΦΓα■∙α Γετ∞εµφε±≥ⁿ ≡ατ≡αßε≥ΩΦ Φ Γ√∩εδφσφΦ ∩≡επ≡α∞∞ Γ ±≡σΣσ WWW. ┴√δε ∩εΩαταφε, ≈≥ε ∩≡επ≡α∞∞√, ≡ατ≡αßε≥αφφ√σ Γ ±Φ±≥σ∞σ Java, εßδαΣα■≥ ≥αΩΦ∞Φ ±ΓεΘ±≥Γα∞Φ ΩαΩ ∩σ≡σφε±Φ∞ε±≥ⁿ, Γ√±εΩα φαΣσµφε±≥ⁿ, αΣα∩≥Φ≡≤σ∞ε±≥ⁿ Ω φεΓ√∞ ≤±δεΓΦ ∞ Φ⌡ Γ√∩εδφσφΦ . ╩αΩ ε≥∞σ≈σφε Γ [21], Java ∩ετΓεδ σ≥ ≤µσ ±σΘ≈α± ≡ατ≡αßα≥√Γα≥ⁿ Γ√±εΩεφαΣσµφ√σ Ωε∞∞σ≡≈σ±ΩΦσ ∩≡ΦΩδαΣφ√σ ±Φ±≥σ∞√. ▌≥Φ ±ΓεΘ±≥Γα ∩≡ΦΓδσΩα■≥ Ω ±Φ±≥σ∞σ Java ∞φεπΦ⌡ ∩≡επ≡α∞∞Φ±≥εΓ, Φ Γ φα±≥ε ∙σσ Γ≡σ∞ , φσ±ε∞φσφφε, Java - ±α∞α ∩ε∩≤δ ≡φα ±Φ±≥σ∞α ∩≡επ≡α∞∞Φ≡εΓαφΦ . ╬ΣφαΩε ±Φ±≥σ∞α Java ±σΘ≈α± φα⌡εΣΦ≥± Γ ±α∞ε∞ φα≈αδσ ±Γεσπε ≡ατΓΦ≥Φ . ┼∙σ φσ≥ Σαµσ ∩σ≡Γ√⌡ ∩≤ßδΦΩα÷ΦΘ, ±Γ ταφφ√⌡ ±ε ±≥αφΣα≡≥Φτα÷ΦσΘ Java, σ∙σ ∞φεπε φσ ±φ√⌡ Γε∩≡ε±εΓ, ±Γ ταφφ√⌡ ± φαΣσµφε±≥ⁿ■, ßστε∩α±φε±≥ⁿ■, ²⌠⌠σΩ≥ΦΓφε±≥ⁿ■, εßσ±∩σ≈σφΦσ∞ ß√±≥≡εΣσΘ±≥ΓΦ Java-∩≡επ≡α∞∞. ╧ε²≥ε∞≤ ∞εµφε εµΦΣα≥ⁿ, ≈≥ε Γ ±α∞εσ ßδΦµαΘ°σσ Γ≡σ∞ , ß≤Σ≤≥ ∩εδ≤≈σφ√ Φ ε∩≤ßδΦΩεΓαφ√ φεΓ√σ ≡στ≤δⁿ≥α≥√ ΩαΩ ∩ε ≡ατΓΦ≥Φ■ Φ ±≥αφΣα≡≥Φτα÷ΦΦ τ√Ωα Φ ±Φ±≥σ∞√ ∩≡επ≡α∞∞Φ≡εΓαφΦ Java, ≥αΩ Φ ∩ε φεΓ√∞ ≥σ⌡φεδεπΦ ∞ Φ ∩εΣ⌡εΣα∞ Ω ∩≡Φ∞σφσφΦ■ Java Γ ±α∞√⌡ ≡ατδΦ≈φ√⌡ εßδα±≥ ⌡ ±Φ±≥σ∞φεπε Φ ∩≡ΦΩδαΣφεπε ∩≡επ≡α∞∞Φ≡εΓαφΦ .
www.unidata.ucar.edu/staff/russ/java/jgl-bjug