▀τ√Ω Φ α≡⌡Φ≥σΩ≥≤≡α Java

┬. ╓Φ°σΓ±ΩΦΘ, Jet Infosystems


┬ΓσΣσφΦσ

╧≡σα∞ß≤δα

═α ±σπεΣφ °φΦΘ Σσφⁿ ±ετΣαφΦσ ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ  ∩≡σΣ±≥αΓδ σ≥ ±εßεΘ ≈≡στΓ√≈αΘφε ≥ µσδεσ ταφ ≥Φσ. ╥≡≤Σφε±≥Φ ±Γ ταφ√ ± ≡ατφεεß≡ατΦσ∞ α≡⌡Φ≥σΩ≥≤≡ ∞α°Φφ, ε∩σ≡α÷Φεφφ√⌡ ±Φ±≥σ∞, π≡α⌠Φ≈σ±ΩΦ⌡ εßεδε≈σΩ Φ ≥.Σ.. ╩≡ε∞σ ≥επε, Γα°Φ ∩≡ΦδεµσφΦ  Σεδµφ√ ≡αßε≥α≥ⁿ Γ ≡α±∩≡σΣσδσφφ√⌡ ±Φ±≥σ∞α⌡. ╤≥≡σ∞Φ≥σδⁿφ√Θ ≡ε±≥ ≥σ⌡φεδεπΦΘ, ±Γ ταφφ√⌡ ± ╚φ≥σ≡φσ≥ε∞, WWW Φ "²δσΩ≥≡εφφεΘ Ωε∞∞σ≡÷ΦσΘ", Σε∩εδφΦ≥σδⁿφε ≤±δεµφ ■≥ ²≥≤ ταΣα≈≤. ╠εΣφ√Θ φ√φσ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√Θ ∩εΣ⌡εΣ ±α∞ ∩ε ±σßσ φσ ≡σ°ασ≥ ²≥Φ⌡ ∩≡εßδσ∞, ßεδσσ ≥επε, ≈α±≥ε ∩≡ΦΓφε±Φ≥ φεΓ√σ.
╧≡σΣδαπασ∞√Θ ⌠Φ≡∞εΘ Sun Microsystems ∩εΣ⌡εΣ, α Φ∞σφφε ±Φ±≥σ∞α ∩≡επ≡α∞∞Φ≡εΓαφΦ  φα ε±φεΓσ  τ√Ωα Java(TM) εßδαΣασ≥ ±δσΣ≤■∙Φ∞Φ ⌡α≡αΩ≥σ≡Φ±≥ΦΩα∞Φ:

╬±φεΓ√ ∩≡εσΩ≥α Java. ═σ∞φεπε Φ±≥ε≡ΦΦ

╓σδⁿ■ ∩≡εσΩ≥α ß√δε ±ετΣαφΦσ φσßεδⁿ°εΘ, φαΣσµφεΘ, ∩σ≡σφε±Φ∞εΘ Φ ≡α±∩≡σΣσδσφφεΘ ±Φ±≥σ∞√ ≡σαδⁿφεπε Γ≡σ∞σφΦ. ╚±⌡εΣφε Γ Ωα≈σ±≥Γσ  τ√Ωα ∩δαφΦ≡εΓαδε±ⁿ Φ±∩εδⁿτεΓαφΦσ  τ√Ωα ∩≡επ≡α∞∞Φ≡εΓαφΦ  ╤++, φε ∩ε±≥σ∩σφφε ±Γ ταφφ√σ ± φΦ∞ ≥≡≤Σφε±≥Φ ∩≡ΦΓσδΦ Ω φσεß⌡εΣΦ∞ε±≥Φ ±ετΣαφΦ  φεΓεπε  τ√Ωα. ╤Φ±≥σ∞α Σεδµφα ß√δα Γεß≡α≥ⁿ Γ ±σß  δ≤≈°Φσ ≈σ≡≥√ Φτ ∞φεµσ±≥Γα ±εΓ≡σ∞σφφ√⌡ ±Φ±≥σ∞ ∩≡επ≡α∞∞Φ≡εΓαφΦ  -- Eiffel, Smalltalk, Objective C, Cedar/Mesa Φ ≥. Σ..
╤≥≡σ∞Φ≥σδⁿφ√Θ ≡ε±≥ ±σ≥σΓ√⌡ ≥σ⌡φεδεπΦΘ ∩≡ΦΓσδ Ω φσεß⌡εΣΦ∞ε±≥Φ φεΓεπε Γτπδ Σα φα ∩≡ε÷σ±± ±ετΣαφΦ  Φ ≡α±∩≡σΣσδσφΦ  ∩≡ΦδεµσφΦΘ. ╤εΓ≡σ∞σφφ√σ ∩≡ΦδεµσφΦ  Σεδµφ√ ß√≥ⁿ ßστε∩α±φ√, Γ√±εΩε∩≡εΦτΓεΣΦ≥σδⁿφ√, ≡αßε≥α≥ⁿ Γ ≡α±∩≡σΣσδσφφεΘ ±≡σΣσ φα ∞φεµσ±≥Γσ ∞α°Φφ ≡ατδΦ≈φεΘ α≡⌡Φ≥σΩ≥≤≡√.
╥≡σßεΓαφΦ  Ω ∩σ≡σφε±Φ∞ε±≥Φ τα±≥αΓΦδΦ ε≥Ωατα≥ⁿ±  ε≥ ≥≡αΣΦ÷Φεφφεπε ±∩ε±εßα ±ετΣαφΦ  Φ Σε±≥αΓΩΦ ßΦφα≡φ√⌡ ⌠αΘδεΓ, ±εΣσ≡µα∙Φ⌡ ∞α°Φφφ√σ ΩεΣ√ Φ, ±δσΣεΓα≥σδⁿφε, ∩≡ΦΓ ταφφ√⌡ Ω ε∩≡σΣσδσφφεΘ ∩δα≥⌠ε≡∞σ. ╤σπεΣφ , ≈≥εß√ Γ√µΦ≥ⁿ Γ ²≥Φ⌡ Σµ≤φπδ ⌡ Φτ α≡⌡Φ≥σΩ≥≤≡ ∩≡ε÷σ±±ε≡εΓ, ε∩σ≡α÷Φεφφ√⌡ ±Φ±≥σ∞ Φ π≡α⌠Φ≈σ±ΩΦ⌡ εßεδε≈σΩ, ∩≡ΦδεµσφΦσ Σεδµφε ß√≥ⁿ φσΘ≥≡αδⁿφε Ω α≡⌡Φ≥σΩ≥≤≡σ Φ ΣΦφα∞Φ≈σ±ΩΦ φα±≥≡αΦΓασ∞ε.
╤ετΣαφφα  ±Φ±≥σ∞α ≡ατ≡αßε≥ΩΦ Java ≤ΣεΓδσ≥Γε≡ σ≥ Γ±σ∞ ²≥Φ∞ ≥≡σßεΓαφΦ ∞, α ±δσΣεΓα≥σδⁿφε:

╫≥εß√ φσ ß√≥ⁿ πεδε±δεΓφ√∞, ≡α±±∞ε≥≡Φ∞ ΩαµΣεσ Φτ ²≥Φ⌡ ±ΓεΘ±≥Γ ∩ε ε≥Σσδⁿφε±≥Φ.

╤ΓεΘ±≥Γα Java, Ω≡α≥ΩΦΘ εßτε≡

Java ∩≡ε±≥α, εß·σΩ≥φε ε≡Φσφ≥Φ≡εΓαφφα Φ τφαΩε∞α
╤Φ±≥σ∞α Java ±ετΣαφα φα ε±φεΓσ *∩≡ε±≥επε*  τ√Ωα ∩≡επ≡α∞∞Φ≡εΓαφΦ , ≥σ⌡φΦΩα Φ±∩εδⁿτεΓαφΦ  Ωε≥ε≡επε ßδΦτΩα Ω εß∙σ∩≡Φφ ≥εΘ Φ εß≤≈σφΦσ Ωε≥ε≡ε∞≤ φσ ≥≡σß≤σ≥ τφα≈Φ≥σδⁿφ√⌡ ≤±ΦδΦΘ.
Java ΩαΩ  τ√Ω ∩≡επ≡α∞∞Φ≡εΓαφΦ   Γδ σ≥±  εß·σΩ≥φε ε≡Φσφ≥Φ≡εΓαφφεΘ ± ∞ε∞σφ≥α ε±φεΓαφΦ . ╩≡ε∞σ ≥επε ∩≡επ≡α∞∞Φ±≥ ± ±α∞επε φα≈αδα εßσ±∩σ≈ΦΓασ≥±  φαßε≡ε∞ *±≥αφΣα≡≥φ√⌡* ßΦßδΦε≥σΩ, εßσ±∩σ≈ΦΓα■∙Φ⌡ ⌠≤φΩ÷Φεφαδⁿφε±≥ⁿ ε≥ ±≥αφΣα≡≥φεπε ΓΓεΣα/Γ√ΓεΣα Φ ±σ≥σΓ√⌡ ∩≡ε≥εΩεδεΓ Σε π≡α⌠Φ≈σ±ΩΦ⌡ ∩εδⁿτεΓα≥σδⁿ±ΩΦ⌡ Φφ≥σ≡⌠σΘ±εΓ. ▌≥Φ ßΦßδΦε≥σΩΦ δσπΩε ∞επ≤≥ ß√≥ⁿ ≡α±°Φ≡σφ√.
═σ±∞ε≥≡  φα ≥ε, ≈≥ε  τ√Ω ╤++ ß√δ ε≥Γσ≡πφ≤≥, ±Φφ≥αΩ±Φ±  τ√Ωα Java ∞αΩ±Φ∞αδⁿφε ∩≡ΦßδΦµσφ Ω ±Φφ≥αΩ±Φ±≤ ╤++. ▌≥ε Σσδασ≥  τ√Ω τφαΩε∞√∞ °Φ≡εΩε∞≤ Ω≡≤π≤ ∩≡επ≡α∞∞Φ±≥εΓ. ┬ ≥ε µσ Γ≡σ∞  Φτ  τ√Ωα ß√δΦ ≤Σαδσφ√ ∞φεπΦσ ±ΓεΘ±≥Γα, Ωε≥ε≡√σ Σσδα■≥ ╤++ ΦτδΦ°φσ ±δεµφ√∞ Σδ  ∩εδⁿτεΓαφΦ , φσ  Γδ  ±ⁿ αß±εδ■≥φε φσεß⌡εΣΦ∞√∞Φ. ┬ ≡στ≤δⁿ≥α≥σ  τ√Ω Java ∩εδ≤≈Φδ±  ßεδσσ ∩≡ε±≥√∞ Φ ε≡παφΦ≈φ√∞, ≈σ∞ ╤++.
═αΣσµφε±≥ⁿ Φ ßστε∩α±φε±≥ⁿ
Java ±≤∙σ±≥Γσφφε εßδσπ≈ασ≥ ±ετΣαφΦσ φαΣσµφεπε ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ . ╩≡ε∞σ Φ±≈σ≡∩√Γα■∙σΘ ∩≡εΓσ≡ΩΦ φα ²≥α∩σ Ωε∞∩Φδ ÷ΦΦ, ±Φ±≥σ∞α ∩≡σΣ≤±∞α≥≡ΦΓασ≥±  αφαδΦτ φα ²≥α∩σ Γ√∩εδφσφΦ . ╤α∞  τ√Ω ±∩≡εσΩ≥Φ≡εΓαφ ≥αΩ, ≈≥εß√ Γ√≡αßα≥√Γα≥ⁿ ≤ ∩≡επ≡α∞∞Φ±≥α ∩≡ΦΓ√≈Ω≤ ∩Φ±α≥ⁿ "∩≡αΓΦδⁿφε". ╠εΣσδⁿ ≡αßε≥√ ± ∩α∞ ≥ⁿ■, Γ Ωε≥ε≡εΘ Φ±Ωδ■≈σφε Φ±∩εδⁿτεΓαφΦσ ≤Ωατα≥σδσΘ, Σσδασ≥ φσΓετ∞εµφ√∞Φ ÷σδ√Θ Ωδα±± ε°ΦßεΩ, ⌡α≡αΩ≥σ≡φ√⌡ Σδ  ╤ Φ ╤++.
┬ ±Φδ≤ ≥επε, ≈≥ε Java ∩≡σΣφατφα≈σφα Σδ  ≡αßε≥√ Γ ≡α±∩≡σΣσδσφφεΘ ±≡σΣσ, ßστε∩α±φε±≥ⁿ ±≥αφεΓΦ≥±  ≈≡στΓ√≈αΘφε ΓαµφεΘ ∩≡εßδσ∞εΘ. ╥≡σßεΓαφΦ  ßστε∩α±φε±≥Φ ε∩≡σΣσδ ■≥ ∞φεπΦσ ≈σ≡≥√ ΩαΩ  τ√Ωα, ≥αΩ Φ ≡σαδΦτα÷ΦΦ Γ±σΘ ±Φ±≥σ∞√.
═σταΓΦ±Φ∞ε±≥ⁿ ε≥ α≡⌡Φ≥σΩ≥≤≡√ Φ ∩σ≡σφε±Φ∞ε±≥ⁿ.
╩ε∞∩Φδ ≥ε≡ Java ∩≡εΦτΓεΣΦ≥ ßαΘ≥-ΩεΣ√, ≥.σ. ∞εΣ≤δΦ ∩≡ΦδεµσφΦ  Φ∞σ■≥ α≡⌡Φ≥σΩ≥≤≡φε-φσταΓΦ±Φ∞√Θ ⌠ε≡∞α≥, Ωε≥ε≡√Θ ∞εµσ≥ ß√≥ⁿ ∩≡εΦφ≥σ≡∩≡σ≥Φ≡εΓαφ φα ∞φεµσ±≥Γσ ≡ατφεεß≡ατφ√⌡ ∩δα≥⌠ε≡∞. ▌≥ε ≤µσ φσ Φ±⌡εΣφ√σ ≥σΩ±≥√, φε σ∙σ φσ ∩δα≥⌠ε≡∞φε-ταΓΦ±Φ∞√σ ∞α°Φφφ√σ ΩεΣ√.
╤δσΣ≤■∙ΦΘ °απ -- "τα∞ε≡αµΦΓαφΦσ" ±≥αφΣα≡≥α φα ⌠ε≡∞α≥ ε±φεΓφ√⌡ Γ±≥≡εσφφ√⌡ ≥Φ∩εΓ Σαφφ√⌡. ╧≡επ≡α∞∞α, ±ετΣαφφα  φα εΣφεΘ ∩δα≥⌠ε≡∞σ, ≡αßε≥ασ≥ φα Γ±σ⌡ ε±≥αδⁿφ√⌡.
▌≥ε≥ ±≥αφΣα≡≥ ⌠ΦΩ±Φ≡εΓαφ Γ ΣεΩ≤∞σφ≥σ, ε∩Φ±√Γα■∙σ∞ Java Virtual Machine. ╤≥αφΣα≡≥ ∞εµσ≥ ß√≥ⁿ ≡σαδΦτεΓαφ φα δ■ßεΘ α∩∩α≡α≥φε-∩≡επ≡α∞∞φεΘ ∩δα≥⌠ε≡∞σ, ∩εΣΣσ≡µΦΓα■∙σΘ ∞φεπε∩ε≥εΩεΓε±≥ⁿ.
╧≡εΦτΓεΣΦ≥σδⁿφε±≥ⁿ
╤⌡σ∞α ≡αßε≥√ ±Φ±≥σ∞√ Φ φαßε≡ ßαΘ≥-ΩεΣεΓ ΓΦ≡≥≤αδⁿφεΘ ∞α°Φφ√ Java ≥αΩεΓ√, ≈≥ε ∩ετΓεδ ■≥ Σε±≥Φ≈ⁿ Γ√±εΩεΘ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥Φ φα ²≥α∩σ Γ√∩εδφσφΦ  ∩≡επ≡α∞∞√:

╚φ≥σ≡∩≡σ≥Φ≡≤σ∞√Θ, ∞φεπε∩ε≥εΩεΓ√Θ Φ ΣΦφα∞Φ≈σ±ΩΦΘ
╚φ≥σ≡∩≡σ≥Φ≡≤σ∞α  ∩≡Φ≡εΣα  τ√Ωα ∩ετΓεδ σ≥ ±Σσδα≥ⁿ ⌠ατ≤ δΦφΩεΓαφΦ  ∩≡ε±≥εΘ, ΦφΩ≡σ∞σφ≥αδⁿφεΘ Φ, ±δσΣεΓα≥σδⁿφε, ß√±≥≡εΘ. ▌≥ε ≡στΩε ±εΩ≡α∙ασ≥ ÷ΦΩδ ≡ατ≡αßε≥ΩΦ Φ ≥σ±≥Φ≡εΓαφΦ  ∩≡επ≡α∞∞φ√⌡ ⌠≡απ∞σφ≥εΓ.
╠φεπε∩ε≥εΩεΓε±≥ⁿ ∩ετΓεδ σ≥ Γ√∩εδφ ≥ⁿ Γ ≡α∞Ωα⌡ εΣφεπε ∩≡ΦδεµσφΦ  φσ±ΩεδⁿΩε ταΣα≈ εΣφεΓ≡σ∞σφφε. ▌≥ε ±≥αφεΓΦ≥±  ε±εßσφφε αΩ≥≤αδⁿφε Γ ±εΓ≡σ∞σφφ√⌡ ≡α±∩≡σΣσδσφφ√⌡ ∩≡ΦδεµσφΦ ⌡, ΩεπΣα ∩≡ε÷σ±±√ ±σ≥σΓεπε εß∞σφα ∞επ≤≥ ΦΣ≥Φ εΣφεΓ≡σ∞σφφε Φ α±Φφ⌡≡εφφε. ╧≡Φ ²≥ε∞ ∩≡επ≡α∞∞α ∩≡εΣεδµασ≥ ≡σαπΦ≡εΓα≥ⁿ φα ΓΓεΣ Φφ⌠ε≡∞α÷ΦΦ ∩εδⁿτεΓα≥σδσ∞ ßστ φσ∩≡Φ ≥φ√⌡ ταΣσ≡µσΩ.
╠φεπε∩ε≥εΩεΓε±≥ⁿ ∩εΣΣσ≡µΦΓασ≥±  φα ≤≡εΓφσ  τ√Ωα -- ≈α±≥ⁿ ∩≡Φ∞Φ≥ΦΓεΓ ±Φφ⌡≡εφΦτα÷ΦΦ Γ±≥≡εσφα Γ ±Φ±≥σ∞≤ ≡σαδⁿφεπε Γ≡σ∞σφΦ, α ßΦßδΦε≥σΩα ±εΣσ≡µΦ≥ ßατεΓ√Θ Ωδα±± Thread. ╩ ≥ε∞≤ µσ ±Φ±≥σ∞φ√σ ßΦßδΦε≥σΩΦ φα∩Φ±αφ√ thread-safe, ≥.σ. Γ±σ εφΦ ∞επ≤≥ ß√≥ⁿ Φ±∩εδⁿτεΓαφ√ Γ ∞φεπε∩ε≥εΩεΓ√⌡ ∩≡ΦδεµσφΦ ⌡.
╤Φ±≥σ∞α εßσ±∩σ≈ΦΓασ≥ ΣΦφα∞Φ≈σ±Ω≤■ ±ßε≡Ω≤ ∩≡επ≡α∞∞√. ╩δα±±√ ∩εΣπ≡≤µα■≥±  ∩ε ∞σ≡σ φσεß⌡εΣΦ∞ε±≥Φ, ∩≡Φ≈σ∞ ταπ≡≤µσφ√ εφΦ ∞επ≤≥ ß√≥ⁿ ± δ■ßεΘ ≥ε≈ΩΦ ±σ≥Φ, ≈≥ε ∩ετΓεδ σ≥ ±Σσδα≥ⁿ Γφσ±σφΦσ Φτ∞σφσφΦΘ Γ ∩≡ΦδεµσφΦ  ∩≡ετ≡α≈φ√∞ Σδ  ∩εδⁿτεΓα≥σδ . ╧εδⁿτεΓα≥σδⁿ ∞εµσ≥ ß√≥ⁿ ≤Γσ≡σφ, ≈≥ε Γ±σπΣα ≡αßε≥ασ≥ ±ε ±ΓσµσΘ Γσ≡±ΦσΘ ∩≡ΦδεµσφΦ .

┴ατεΓα  ±Φ±≥σ∞α Java

╬∩√≥ ∩εΩατ√Γασ≥, ≈≥ε ε≥±≤≥±≥ΓΦσ ±≥αφΣα≡≥φ√⌡ ßατεΓ√⌡ ßΦßδΦε≥σΩ Σδ   τ√Ωα ╤++ ≈≡στΓ√≈αΘφε τα≥≡≤Σφ σ≥ ≡αßε≥≤ ± φΦ∞. ┬ ±Φδ≤ ≥επε, ≈≥ε δ■ßεσ φσ≥≡ΦΓΦαδⁿφεσ ∩≡ΦδεµσφΦσ ≥≡σß≤σ≥ φαδΦ≈Φ  φσΩε≥ε≡επε φαßε≡α ßατεΓ√⌡ Ωδα±±εΓ, ≡ατ≡αßε≥≈ΦΩα∞ ∩≡Φ⌡εΣΦ≥±  ∩εδⁿτεΓα≥ⁿ±  ≡ατδΦ≈φ√∞Φ φσ±εΓ∞σ±≥Φ∞√∞Φ ∞σµΣ≤ ±εßεΘ ßΦßδΦε≥σΩα∞Φ ΦδΦ ∩Φ±α≥ⁿ ±ΓεΘ ±εß±≥Γσφφ√Θ Γα≡Φαφ≥ ≥αΩεπε φαßε≡α. ┬±σ ²≥ε τα≥≡≤Σφ σ≥ ΩαΩ ≡ατ≡αßε≥Ω≤, ≥αΩ Φ ΣαδⁿφσΘ°≤■ ∩εΣΣσ≡µΩ≤ ∩≡ΦδεµσφΦΘ, τα≥≡≤Σφ σ≥ ±≥√ΩεΓΩ≤ ∩≡ΦδεµσφΦΘ, φα∩Φ±αφφ√⌡ ≡ατφ√∞Φ δ■Σⁿ∞Φ.
╧εδφα  ±Φ±≥σ∞α Java ΓΩδ■≈ασ≥ Γ ±σß  πε≥εΓ√Θ φαßε≡ ßΦßδΦε≥σΩ, Ωε≥ε≡√Θ ∞εµφε ≡ατßΦ≥ⁿ φα ±δσΣ≤■∙Φσ ∩αΩσ≥√:

╨στ≤δⁿ≥α≥ -- φεΓ√Θ ∩εΣ⌡εΣ Ω ≡α±∩≡σΣσδσφφ√∞ Γ√≈Φ±δσφΦ ∞

╩αµΣα  Φτ ∩σ≡σ≈Φ±δσφφ√⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩ ∩ε ε≥Σσδⁿφε±≥Φ ∞εµσ≥ ß√≥ⁿ φαΘΣσφα Γ ≤µσ ±≤∙σ±≥Γ≤■∙Φ⌡ ∩≡επ≡α∞∞φ√⌡ ∩αΩσ≥α⌡. ═εΓ√∞  Γδ σ≥±  ±εσΣΦφσφΦσ Φ⌡ Γ ±≥≡εΘφ≤■ φσ∩≡ε≥ΦΓε≡σ≈ΦΓ≤■ ±Φ±≥σ∞≤, Ωε≥ε≡α  Σεδµφα ±≥α≥ⁿ Γ±σεß∙Φ∞ ±≥αφΣα≡≥ε∞.

Java -- ∩≡ε±≥ε Φ τφαΩε∞ε

═α ±σπεΣφ °φΦΘ Σσφⁿ φαΦßεδσσ ∩ε∩≤δ ≡φ√∞Φ  τ√Ωα∞Φ ∩≡επ≡α∞∞Φ≡εΓαφΦ   Γδ ■≥±  ╤ Φ ╤++. ╚τ φΦ⌡ ΣΓεΦ⌡ δΦ°ⁿ ╤++ ∩≡σ≥σφΣ≤σ≥ φα εß·σΩ≥φ≤■ ε≡Φσφ≥α÷Φ■. ╒α≡αΩ≥σ≡Φ±≥ΦΩΦ ²≥επε  τ√Ωα ±ΩδαΣ√ΓαδΦ±ⁿ Γ ⌡εΣσ ΣδΦφφεΘ Φ±≥ε≡ΦΦ σπε ≡ατΓΦ≥Φ , ∩≡Φ≈σ∞ ΣεΓεδⁿφε ⌡αε≥Φ≈φε, ΩαµΣεσ φεΓεσ ±ΓεΘ±≥Γε φσ ε≥∞σφ δε Γ±σ⌡ ∩≡σΣ√Σ≤∙Φ⌡. ╤≥αφΣα≡≥  τ√Ωα Σε ±Φ⌡ ∩ε≡ φσ τα⌠ΦΩ±Φ≡εΓαφ, ≥.Ω. φεΓ√σ ±ΓεΘ±≥Γα ∩≡εΣεδµα■≥ ∩ε Γδ ≥ⁿ±  ∩ε ±σΘ Σσφⁿ. ┬ ≡στ≤δⁿ≥α≥σ ╤++ ±≥αδ ßσ±Ωεφσ≈φε ±δεµφ√∞ Φ Φτß√≥ε≈φ√∞ -- εΣφ≤ Φ ≥≤ µσ ε∩σ≡α÷Φ■ Γετ∞εµφε ≡σαδΦτεΓα≥ⁿ φα  τ√Ωσ ∞φεµσ±≥Γε∞ ±∩ε±εßεΓ.
Java ∩≡σΣ±≥αΓδ σ≥ ±εßεΘ φεΓ≤■ ≥ε≈Ω≤ ε≥±≈σ≥α Γ ∩≡επ≡α∞∞φε∞ εßσ±∩σ≈σφΦΦ. ╨ατ≡αßε≥≈ΦΩΦ  τ√Ωα Γτ δΦ τα ε±φεΓ≤ ╤++, τα≥σ∞ ∞σ≥εΣΦ≈φε ≤ΣαδΦδΦ Φτ φσπε ≈σ≡≥√, Ωε≥ε≡√σ:

┬ ≥ε µσ Γ≡σ∞  Γ  τ√Ωσ Java ∩εδφε±≥ⁿ■ ±ε⌡≡αφσφ "Σ≤⌡" ∩≡επ≡α∞∞Φ≡εΓαφΦ  φα ╤++, ε∩√≥φ√∞ ╤++ ∩≡επ≡α∞∞Φ±≥α∞ ∩ε≥≡σß≤σ≥±  εΣφα-ΣΓσ φσΣσδΦ φα ε±ΓεσφΦσ ±α∞επε  τ√Ωα, α επ≡ε∞φ√Θ εß·σ∞ ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ , ≤µσ ±ετΣαφφεπε ± Φ±∩εδⁿτεΓαφΦσ∞ ╤++, ∞εµσ≥ ß√≥ⁿ αΣα∩≥Φ≡εΓαφ ∩εΣ φεΓ√Θ  τ√Ω ε≥φε±Φ≥σδⁿφε δσπΩε.

╬±φεΓφ√σ ±ΓεΘ±≥Γα  τ√Ωα ∩≡επ≡α∞∞Φ≡εΓαφΦ  Java

┬±≥≡εσφφ√σ (∩≡Φ∞Φ≥ΦΓφ√σ) ≥Φ∩√ Σαφφ√⌡
┬  τ√Ωσ Java, ≥αΩ µσ ΩαΩ Φ Γ ╤++, ±≤∙σ±≥Γ≤σ≥ φαßε≡ Γ±≥≡εσφφ√⌡ ≥Φ∩εΓ Σαφφ√⌡, Ωε≥ε≡√σ (≥αΩ µσ ΩαΩ Φ Γ ╤++) φσ  Γδ ■≥±  εß·σΩ≥α∞Φ. ═αßε≡ Φ⌡ ≥αΩµσ ±⌡εΣσφ ± φαßε≡ε∞ ßατεΓ√⌡ ≥Φ∩εΓ ╤++ τα φσΩε≥ε≡√∞Φ Φ±Ωδ■≈σφΦ ∞Φ.

Numeric
╒α≡αΩ≥σ≡φ√∞ ε≥δΦ≈Φσ∞ ε≥ ╤++  Γδ σ≥±  ≥ε, ≈≥ε ßΦφα≡φεσ ∩≡σΣ±≥αΓδσφΦσ ≈Φ±σδ ε≥φ√φσ ⌠ΦΩ±Φ≡εΓαφε:
Character
╬≥δΦ≈α■≥±  ε≥ ╤++ ΩαΩ ±Φφ≥αΩ±Φ±ε∞, ≥αΩ Φ ∩≡σΣ±≥αΓδσφΦσ∞. ╥Φ∩ character σ±≥ⁿ 16-≡ατ≡ Σφεσ ≈Φ±δε ßστ τφαΩα (ΣΦα∩ατεφ 0-65,535). ╩εΣΦ≡εΓΩα ±εε≥Γσ≥±≥Γ≤σ≥ ±≥αφΣα≡≥≤ Unicode. ┬ ±Φδ≤ ≥επε, ≈≥ε ²≥α ΩεΣΦ≡εΓΩα Γ ΦΣσαδσ Σεδµφα ε⌡Γα≥√Γα≥ⁿ Γ±σ ±≤∙σ±≥Γ≤■∙Φσ Γ ∞Φ≡σ  τ√ΩΦ, ²≥ε ∩≡σΣ±≥αΓδσφΦσ Σεδµφε εßδσπ≈Φ≥ⁿ δεΩαδΦτα÷Φ■ ∩≡ΦδεµσφΦΘ.
Boolean
▌≥ε≥ ≥Φ∩ Σαφφ√⌡ φσ Γ√Σσδσφ Γ ╤++, εΣφαΩε φσ Γφε ∩≡Φ±≤≥±≥Γ≤σ≥ ∩≡αΩ≥Φ≈σ±ΩΦ Γε Γ±σ⌡ ∩≡επ≡α∞∞α⌡. ┬ Java ≥Φ∩ φατ√Γασ≥±  boolean, ∞εµσ≥ ∩≡ΦφΦ∞α≥ⁿ τφα≈σφΦ  true Φ false Φ φσ ∞εµσ≥ (Γ ε≥δΦ≈Φσ ε≥ ╤++) ß√≥ⁿ ∩≡σεß≡ατεΓαφ Γ Σ≡≤πεΘ ≥Φ∩.
╬∩σ≡α≥ε≡√
─εßαΓδσφ φεΓ√Θ ε∩σ≡α≥ε≡ >>> δεπΦ≈σ±Ωεπε ±ΣΓΦπα Γ∩≡αΓε (≥.Ω. φσ≥ ßσττφαΩεΓ√⌡ ÷σδ√⌡ ≈Φ±σδ). ┬±≥≡εσφφα  ε∩σ≡α÷Φ  ±δΦ φΦ  ±≥≡εΩ (ε∩σ≡α≥ε≡ +).
╠α±±ΦΓ√
┬ ε≥δΦ≈Φσ ε≥ ╤++ ∞α±±ΦΓ√ Γ Java  Γδ ■≥±  ∩εδφε÷σφφ√∞Φ εß·σΩ≥α∞Φ ± ε∩≡σΣσδσφφ√∞ runtime ∩≡σΣ±≥αΓδσφΦσ∞. ─σΩδα≡α÷Φ :
Point myPoints[];
≡στσ≡ΓΦ≡≤σ≥ ±±√δΩ≤ φα ∞α±±ΦΓ, α φσ ∞σ±≥ε ∩εΣ ≡σαδⁿφ√Θ εß·σΩ≥. ╤α∞ ∞α±±ΦΓ ∞εµσ≥ ß√≥ⁿ τα≥σ∞ ±ετΣαφ Γ√∩εδφσφΦσ∞
myPoints = new Point[10];
α σπε ²δσ∞σφ≥√ τα∩εδφσφ√ ε∩σ≡α÷ΦσΘ ≥Φ∩α:
myPoints[2] = new Point();
╨ατ∞σ≡ ∞α±±ΦΓα ∞εµσ≥ ß√≥ⁿ ∩εδ≤≈σφ Γε Γ≡σ∞  Γ√∩εδφσφΦ  ∩≡επ≡α∞∞√:
howMany = myPoints.length;
╟φα≈σφΦσ ΦφΣσΩ±α ∩≡εΓσ≡ σ≥±  ∩≡Φ ΩαµΣε∞ εß≡α∙σφΦΦ, ∩≡Φ ε°ΦßΩσ Γετß≤µΣασ≥±  Φ±Ωδ■≈Φ≥σδⁿφα  ±Φ≥≤α÷Φ .
╙Ωατα≥σδΦ ∩εδφε±≥ⁿ■ Φ±Ωδ■≈σφ√ Φτ  τ√Ωα Γ∞σ±≥σ ± ÷σδεΘ Ωα≥σπε≡ΦσΘ ≥≡≤Σφε≤δεΓΦ∞√⌡ ε°ΦßεΩ "τα∞σΣδσφφεπε ΣσΘ±≥ΓΦ ". ╩ ≥ε∞≤ µσ φαδΦ≈Φσ ≤Ωατα≥σδσΘ ∩≡ε≥ΦΓε≡σ≈Φ≥ ≥≡σßεΓαφΦ ∞ ßστε∩α±φε±≥Φ Φ ≤±δεµφ σ≥ ≡σαδΦτα÷Φ■ ±ßε≡∙ΦΩα ∞≤±ε≡α.
Strings
╤≥≡εΩΦ Γ Java  Γδ ■≥±  ∩εδφε÷σφφ√∞Φ εß·σΩ≥α∞Φ. ╬φΦ Σσδ ≥±  φα ≥σΩ±≥εΓ√σ Ωεφ±≥αφ≥√ (Strings) Φ ∞εΣΦ⌠Φ÷Φ≡≤σ∞√σ ±≥≡εΩΦ (StringBuffer). ╩ε∞∩Φδ ≥ε≡ ∩ετΓεδ σ≥  Γφε ε∩≡σΣσδ ≥ⁿ ≥σΩ±≥εΓ√σ δΦ≥σ≡αδ√ Γ ∩≡επ≡α∞∞σ ∩εΣεßφε ≥ε∞≤, ΩαΩ ²≥ε Σσδασ≥±  Γ ╤++
String hello = "Hello world!";
╤±√δΩα hello ΦφΦ÷ΦΦ≡≤σ≥±  εß·σΩ≥ε∞ Ωδα±±α String φα ε±φεΓσ ∩≡σΣ±≥αΓδσφΦ  "Hello world!" Γ ΩεΣΦ≡εΓΩσ Unicode.
╬∩σ≡α≥ε≡ "+" ∞εµσ≥ ß√≥ⁿ ∩≡Φ∞σφσφ Ω ±≥≡εΩα∞, φα∩≡Φ∞σ≡
System.out.println("There are" + num + "characters in the file.");
Multi-Level Break
┬ Java ε≥±≤≥±≥Γ≤σ≥ Γ√≡αµσφΦσ goto. └φαδΦτ ╤/╤++ ≥σΩ±≥εΓ ∩εΩαταδ, ≈≥ε ∩εΣαΓδ ■∙σσ ≈Φ±δε ±δ≤≈ασΓ Φ±∩εδⁿτεΓαφΦ  ²≥επε ε∩σ≡α≥ε≡α ±Γ ταφε ± φσεß⌡εΣΦ∞ε±≥ⁿ■ Γ√⌡εΣα Φτ Γδεµσφφεπε ÷ΦΩδα. ─δ  ε≥≡αßε≥ΩΦ ≥αΩΦ⌡ ±Φ≥≤α÷ΦΘ Γ Java ∩σ≡σΣ φα≈αδε∞ ßδεΩα ∞εµσ≥ ±≥αΓΦ≥ⁿ±  ∞σ≥Ωα, α Φφ±≥≡≤Ω÷ΦΦ break Φ continue ≥αΩµσ ∞επ≤≥ ±ε∩≡εΓεµΣα≥ⁿ±  ∞σ≥ΩεΘ, φα Ωε≥ε≡≤■ Σεδµσφ ß√≥ⁿ ε±≤∙σ±≥Γδσφ ∩σ≡σ⌡εΣ. ═α∩≡Φ∞σ≡:
test:
      for(int i = 0; i < 10; i++)
	for(int j = 0; j < 10; j++)
	  if( i > 3)
	    break test;
╙∩≡αΓδσφΦσ ∩α∞ ≥ⁿ■, ±ßε≡Ωα ∞≤±ε≡α
═σεß⌡εΣΦ∞ε±≥ⁿ  Γφε ≤∩≡αΓδ ≥ⁿ ∩α∞ ≥ⁿ■ Γ ╤/╤++ ∩≡επ≡α∞∞α⌡ Γ±σπΣα ß√δα ßεδⁿ°εΘ ταφετεΘ Σδ  ∩≡επ≡α∞∞Φ±≥εΓ. ╠αδε ≥επε, ≈≥ε ±α∞Φ ∩≡επ≡α∞∞√ ΦτεßΦδεΓαδΦ Γ√τεΓα∞Φ ⌠≤φΩ÷ΦΦ free ΦδΦ ε∩σ≡α≥ε≡α∞Φ delete, φσ∩ε±≡σΣ±≥Γσφφε Ω δεπΦΩσ ∩≡επ≡α∞∞√ ε≥φε°σφΦ  φσ Φ∞σ■∙Φ∞Φ. ╬°ΦßΩΦ, ±Γ ταφφ√σ ± φσε±ΓεßεµΣσφΦσ∞ ∩α∞ ≥Φ ΦδΦ φαεßε≡ε≥, ± ≤ΣαδσφΦσ∞ ≤µσ εΣφαµΣ√ ≤Σαδσφφ√⌡ εß·σΩ≥εΓ, ε≥φε± ≥±  Ω Ωα≥σπε≡ΦΦ ε°ΦßεΩ φαΦßεδσσ ≥≡≤Σφ√⌡ Σδ  εßφα≡≤µσφΦ  Φ Φ±∩≡αΓδσφΦ .
Java ∩εδφε±≥ⁿ■ ±φΦ∞ασ≥ ²≥≤ ταßε≥≤ ± ∩≡επ≡α∞∞Φ±≥α. └Γ≥ε∞α≥Φ≈σ±ΩΦΘ ±ßε≡∙ΦΩ ∞≤±ε≡α εß ταφ ß√≥ⁿ Γ±≥≡εσφ Γ run-time ±Φ±≥σ∞√. ╧α∞ ≥ⁿ εß·σΩ≥εΓ, φα Ωε≥ε≡√σ ßεδⁿ°σ φσ≥ ±±√δεΩ, Γ Ωεφ÷σ Ωεφ÷εΓ ΓετΓ≡α∙ασ≥±  Γ ±Φ±≥σ∞≤. ╬∩√≥ ∩εΩατ√Γασ≥, ≈≥ε φσ±∞ε≥≡  φα ε≥φε±Φ≥σδⁿφ≤■ ±δεµφε±≥ⁿ ±ßε≡∙ΦΩεΓ ∞≤±ε≡α, ∩≡εΦτΓεΣΦ≥σδⁿφε±≥ⁿ ±Φ±≥σ∞√ Γ ÷σδε∞ ∞εµσ≥ εΩατα≥ⁿ±  φσ ∞σφⁿ°σ, α ≈α±≥ε Φ ßεδⁿ°σ, ≈σ∞ ∩≡Φ  Γφε∞ ε±ΓεßεµΣσφΦΦ ∩α∞ ≥Φ ∩≡επ≡α∞∞εΘ.
╤ßε≡Ωα ∞≤±ε≡α Γ ⌠εφεΓε∞ ≡σµΦ∞σ
╬Σφε Φτ ∩≡σΦ∞≤∙σ±≥Γ ≥επε, ≈≥ε Java-∩≡ΦδεµσφΦ  ∞φεπε∩ε≥εΩεΓ√σ, ταΩδ■≈ασ≥±  Γ ≥ε∞, ≈≥ε ±ßε≡Ωα ∞≤±ε≡α ∞εµσ≥ ∩≡εΦτΓεΣΦ≥ⁿ±  Γ ⌠εφεΓε∞ ∩ε≥εΩσ. ▌≥ε≥ ∩ε≥εΩ Φ∞σσ≥ ∞σφⁿ°ΦΘ ∩≡Φε≡Φ≥σ≥ Γ√∩εδφσφΦ , ≈σ∞ ε±≥αδⁿφ√σ, ∩ε²≥ε∞≤ ±Φ±≥σ∞α Γ±σπΣα πε≥εΓα ε≥Γσ≥Φ≥ⁿ φα ΣσΘ±≥ΓΦ  ∩εδⁿτεΓα≥σδ , ε≥±≤≥±≥Γ≤■≥ "∩σ≡ΦεΣ√ ∞εδ≈αφΦ ", Γ Ωε≥ε≡√σ ∩≡εΦτΓεΣΦ≥±  ≥εδⁿΩε ±ßε≡Ωα ∞≤±ε≡α. ╤ Σ≡≤πεΘ ±≥ε≡εφ√, ∩α≤τ√ Γ ε∩σ≡α÷Φ ⌡ ∩εδⁿτεΓα≥σδ  ±ßε≡∙ΦΩ ∞≤±ε≡α ∞εµσ≥ Φ±∩εδⁿτεΓα≥ⁿ Σδ  ±ΓεσΘ ≡αßε≥√, εßσ±∩σ≈ΦΓα  φαδΦ≈Φσ ±ΓεßεΣφεΘ ∩α∞ ≥Φ Γ ∞ε∞σφ≥√, ΩεπΣα ²≥ε φσεß⌡εΣΦ∞ε.
┬±≥≡εσφφα  ±Φφ⌡≡εφΦτα÷Φ  ∩ε≥εΩεΓ
Java ∩εΣΣσ≡µΦΓασ≥ ∞φεπε∩ε≥εΩεΓε±≥ⁿ φσ ≥εδⁿΩε φα ≤≡εΓφσ ßΦßδΦε≥σΩ, φε Φ φα ≤≡εΓφσ ±α∞επε  τ√Ωα, ≈≥ε τφα≈Φ≥σδⁿφε εßδσπ≈ασ≥ ∩ε±≥≡εσφΦσ ∩≡ΦδεµσφΦΘ, φαΣσµφε ≡αßε≥α■∙Φ⌡ Γ ∞φεπε∩ε≥εΩεΓε∞ ≡σµΦ∞σ.

╤ΓεΘ±≥Γα, ∩≡Φ±≤≥±≥Γ≤■∙Φσ Γ ╤ Φ ╤++, Φ ≤Σαδσφφ√σ Φτ Java

╩εφ±≥≡≤Ω÷Φ  typedef, ∩≡σ∩≡ε÷σ±±ε≡
╩εφ±≥≡≤Ω÷Φ  typedef ß√δα ≤φα±δσΣεΓαφα ╤++ Φτ ╤. ╚τ Java εφα Γ√ß≡ε°σφα ±εΓ±σ∞.
═σεß⌡εΣΦ∞ε±≥ⁿ Γ ∞αΩ≡ε∩≡ε÷σ±±ε≡σ ≥αΩµσ Γε ∞φεπε∞ ε≥∩αδα ∩≡Φ φα∩Φ±αφΦΦ ∩≡επ≡α∞∞ φα ╤++. ╧ε≈≥Φ Γ±σ, Σδ  ≈σπε Φ±∩εδⁿτεΓαδΦ±ⁿ ∞αΩ≡ε≡α±°Φ≡σφΦ , ∞εµφε ß√δε ±Σσδα≥ⁿ ßεδσσ ²δσπαφ≥φ√∞ Φ φαΣσµφ√∞ εß≡ατε∞, Φ±∩εδⁿτ≤  Ωεφ±≥≡≤Ω÷ΦΦ ±α∞επε  τ√Ωα.
╤Φ±≥σ∞α φσ Γφε ∩εε∙≡ δα ±ετΣαφΦσ ΩαµΣ√∞ ∩≡επ≡α∞∞Φ±≥ε∞ ±Γεσπε ±εß±≥Γσφφεπε ∩εΣ∞φεµσ±≥Γα  τ√Ωα, φσΦτΓσ±≥φεπε ε±≥αδⁿφε∞≤ ∞Φ≡≤. ╧ε ∞σ≡σ ≡ατ≡α±≥αφΦ  ΩεΣεΓ ≤ΓσδΦ≈ΦΓασ≥±  ≥ε≥ ±∞√±δεΓεΘ Ωεφ≥σΩ±≥, Γ Ωε≥ε≡ε∞ Ωε∞∩Φδ ≥ε≡ Φφ≥σ≡∩≡σ≥Φ≡≤σ≥ ΩαµΣ≤■ ±≥≡εΩ≤ ∩≡επ≡α∞∞√. ╙µσ Γ ∩≡εσΩ≥α⌡ ±≡σΣφσπε ≡ατ∞σ≡α ±≤∙σ±≥Γσφφε Γετ≡α±≥ασ≥ φαπ≡≤τΩα φα Ωε∞∩Φδ ≥ε≡, φσ πεΓε≡  ≤µσ ε φαπ≡≤τΩσ φα ∩α∞ ≥ⁿ ∩≡επ≡α∞∞Φ±≥α.
┼ΣΦφ±≥Γσφφα  ε±≥αΓ°α ±  Γαµφα  ⌠≤φΩ÷Φ  ∩≡σ∩≡ε÷σ±±ε≡α -- ∩ετΓεδΦ≥ⁿ ΓΩδ■≈σφΦσ Γ ∩≡επ≡α∞∞≤ ⌠αΘδ√-ταπεδεΓΩΦ ± ε∩Φ±αφΦ ∞Φ Ωδα±±ε∞. ▌≥α ε∩σ≡α÷Φ  ∞εµσ≥ ß√≥ⁿ Γ√∩εδφσφα ßεδσσ ∩≡ε±≥ε Φ ²⌠⌠σΩ≥ΦΓφε, σ±δΦ ∩ετΓεδΦ≥ⁿ Ωε∞∩Φδ ≥ε≡≤ ≈Φ≥α≥ⁿ ∩εΣπε≥εΓδσφφ√σ ßΦφα≡φ√σ ⌠αΘδ√ ± ε∩Φ±αφΦσ∞ Ωδα±±εΓ. ╧ε±δσΣφΦΘ ∩≤≥ⁿ ß√δ Γ√ß≡αφ ∩≡Φ ±ετΣαφΦΦ  τ√Ωα Java.
┬±σ ²≥Φ ±εεß≡αµσφΦ  ∩ετΓεδΦδΦ ∩εδφε±≥ⁿ■ Φ±Ωδ■≈Φ≥ⁿ φσεß⌡εΣΦ∞ε±≥ⁿ Φ±∩εδⁿτεΓαφΦ  ≥σΩ±≥εΓεπε ∩≡σ∩≡ε÷σ±±ε≡α Γ  τ√Ωσ Java.
Struct Φ union
╤≥≡≤Ω≥≤≡√ φσ Φ∞σ■≥ ±∞√±δα Γ Java, Φ⌡ ≡εδⁿ ∩εδφε±≥ⁿ■ Γ√∩εδφ ■≥ Ωδα±±√. ╚±∩εδⁿτεΓαφΦσ Ωεφ±≥≡≤Ω÷ΦΘ ≥Φ∩α union Σδ  ≥Φ∩ΦτεΓαφφ√⌡ εß·σΩ≥εΓ ≥αΩµσ ßεδⁿ°σ φσ φ≤µφε --  τ√Ω ∩ετΓεδ σ≥ ε∩≡σΣσδΦ≥ⁿ ≥Φ∩ εß·σΩ≥α ∩≡Φ Φ±∩εδφσφΦΦ ∩≡επ≡α∞∞√.
╘≤φΩ÷ΦΦ
┬ ²≥ε∞ ±∞√±δσ Java ≈Φ±≥ε εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφα  ±Φ±≥σ∞α. ╘≤φΩ÷ΦΦ Φ ∩≡ε÷σΣ≤≡√, φσ ∩≡ΦΓ ταφφ√σ Ω Ωεφ≥σΩ±≥≤ ΩαΩεπε-δΦßε εß·σΩ≥α, ßεδⁿ°σ φσ ∩≡Φ±≤≥±≥Γ≤■≥ Γ ±Φ±≥σ∞σ. ┬ ±Φ≥≤α÷ΦΦ, ΩεπΣα ⌠≤φΩ÷Φ  δεπΦ≈σ±ΩΦ φσ ∩≡ΦΓ ταφα Ω ε∩≡σΣσδσφφε∞≤ ²Ωτσ∞∩δ ≡≤ Ωδα±±α, εφα ∞εµσ≥ ß√≥ⁿ ±ετΣαφα ΩαΩ ∞σ≥εΣ ±α∞επε Ωδα±±α (≥.σ. Φ∞σ≥ⁿ ≥Φ∩ static).
╠φεµσ±≥Γσφφεσ φα±δσΣεΓαφΦσ
╧ε±δσΣεΓα≥σδⁿφα  ≡σαδΦτα÷Φ  Ωεφ÷σ∩÷ΦΦ ∞φεµσ±≥Γσφφεπε φα±δσΣεΓαφΦ  Γ ╤++ ∩≡ΦΓσδα Ω ±≤∙σ±≥Γσφφ√∞ ±δεµφε±≥ ∞ ΩαΩ Γ ±ετΣαφΦΦ Ωε∞∩Φδ ≥ε≡εΓ, ≥αΩ Φ Γ Φ±∩εδⁿτεΓαφΦΦ σπε (∞φεµσ±≥Γσφφεπε φα±δσΣεΓαφΦ ) Γ ∩≡επ≡α∞∞α⌡. ┬ Ωα≈σ±≥Γσ αδⁿ≥σ≡φα≥ΦΓ√ Java Φ±∩εδⁿτ≤σ≥ ∩εφ ≥Φσ Φφ≥σ≡⌠σΘ±α ε∩≡σΣσδ ■∙σπε φαßε≡ ∞σ≥εΣεΓ, Ωε≥ε≡√σ Σεδµφ√ ß√≥ⁿ ε∩≡σΣσδσφ√ Γ Ωδα±±σ, ≡σαδΦτ≤■∙σ∞ ²≥ε≥ Φφ≥σ≡⌠σΘ±. ╚φ≥σ≡⌠σΘ± ∞εµσ≥ ≥αΩµσ ±εΣσ≡µα≥ⁿ ε∩≡σΣσδσφΦσ φσΩε≥ε≡√⌡ Ωεφ±≥αφ≥.
╥ε, ≈σπε Φφ≥σ≡⌠σΘ± ±εΣσ≡µα≥ⁿ φσ ∞εµσ≥ -- ²≥ε ≡σαδΦτα÷ΦΦ ∞σ≥εΣεΓ ΦδΦ Φτ∞σφ σ∞√σ ∩εδ  Σαφφ√⌡. ╩δα±±√, Ωε≥ε≡√σ εß· Γδσφ√, ΩαΩ ≡σαδΦτ≤■∙Φσ ≥ε≥ ΦδΦ ΦφεΘ Φφ≥σ≡⌠σΘ±, εß ταφ√ ≡σαδΦτεΓα≥ⁿ Γ±σ ∞σ≥εΣ√, εß· Γδσφφ√σ Γ Φφ≥σ≡⌠σΘ±σ.
Goto
±∞. Γ√°σ ε∩Φ±αφΦσ ε∩σ≡α≥ε≡εΓ continue Φ break ± ∞σ≥ΩεΘ.
╧σ≡σπ≡≤τΩα ε∩σ≡α≥ε≡εΓ
╬∩√≥ Φ±∩εδⁿτεΓαφΦ  ∩σ≡σπ≡≤µσφφ√⌡ ε∩σ≡α≥ε≡εΓ Γ ╤++ ∩εΩατ√Γασ≥, ≈≥ε εφΦ Φ∞σ■≥ ±∞√±δ Γ ΣεΓεδⁿφε επ≡αφΦ≈σφφε∞ φαßε≡σ ±Φ≥≤α÷ΦΘ. ╤ Σ≡≤πεΘ ±≥ε≡εφ√, τδε≤∩ε≥≡σßδσφΦσ ²≥Φ∞ ±ΓεΘ±≥Γε∞ ∞εµσ≥ ±Σσδα≥ⁿ ∩≡επ≡α∞∞≤ αß±εδ■≥φε φσ∩εφ ≥φεΘ. ┼ΣΦφ±≥Γσφφεσ "Γ±≥≡εσφφεσ" Γ  τ√Ω Java Φ±Ωδ■≈σφΦσ -- Γετ∞εµφε±≥ⁿ Φ±∩εδⁿτεΓαφΦ  ε∩σ≡α≥ε≡α "+" Σδ  ±ΩδσΦΓαφΦ  ±≥≡εΩ (±∞. Γ√°σ).
└Γ≥ε∞α≥Φ≈σ±Ωεσ ∩≡σεß≡ατεΓαφΦσ ≥Φ∩εΓ
┬  τ√Ωσ Java τα∩≡σ∙σφε αΓ≥ε∞α≥Φ≈σ±Ωεσ ∩≡σεß≡ατεΓαφΦσ ≥Φ∩εΓ, °Φ≡εΩε Φ±∩εδⁿτ≤σ∞εσ (Φ ≡σΩε∞σφΣ≤σ∞εσ) Γ ╤++. ╫≥εß√ ∩≡σεß≡ατεΓα≥ⁿ ²δσ∞σφ≥ εΣφεπε ≥Φ∩α Γ Σ≡≤πεΘ, φσεß⌡εΣΦ∞ε ≤Ωατα≥ⁿ ²≥ε  Γφε, φα∩≡Φ∞σ≡

int myInt;
double myFloat = 3.14159;
myInt = myFloat;		// Σε∩≤±≥Φ∞ε Γ ╤++, φσΣε∩≤±≥Φ∞ε Γ Java
myInt = (int)myFloat;		// Σε∩≤±≥Φ∞ε Γ Java
╚±Ωδ■≈σφΦσ ±ε±≥αΓδ σ≥ ∩≡σεß≡ατεΓαφΦσ ∞σµΣ≤ Γ±≥≡εσφφ√∞Φ ≈Φ±δσφφ√∞Φ ≥Φ∩α∞Φ ßστ ∩ε≥σ≡Φ Φφ⌠ε≡∞α÷ΦΦ.
╙Ωατα≥σδΦ
┴εδⁿ°Φφ±≥Γε Φ±±δσΣεΓαφΦΘ ∩εΩαταδΦ, ≈≥ε ∩≡Φ∞σφσφΦσ ≤Ωατα≥σδσΘ Γ ╤/╤++  Γδ ■≥±  εΣφΦ∞ Φτ ε±φεΓφ√⌡ Φ±≥ε≈φΦΩεΓ ε°ΦßεΩ. ┬ ±Φδ≤ ≥επε, ≈≥ε Γ  τ√Ωσ ßεδⁿ°σ φσ ±≥αδε ±≥≡≤Ω≥≤≡, α ∞α±±ΦΓ√ Φ ±≥≡εΩΦ ∩≡σΓ≡α≥ΦδΦ±ⁿ Γ ∩εδφε÷σφφ√σ εß·σΩ≥√, φαΣεßφε±≥ⁿ Γ ≤Ωατα≥σδ ⌡ ε≥∩αδα. ╤εΣσ≡µΦ∞εσ ±≥≡εΩ Φ ∞α±±ΦΓεΓ Σε±≥≤∩φε ≥εδⁿΩε ∩ε ΦφΣσΩ±α∞, ∩≡Φ≈σ∞ Ωεφ≥≡εδⁿ Σε±≥≤∩α Γε Γ≡σ∞  Γ√∩εδφσφΦ  φσ ∩ετΓεδ σ≥ Γ√⌡εΣΦ≥ⁿ τα π≡αφΦ÷√ ∞α±±ΦΓα ΦδΦ ±≥≡εΩΦ.

╚≥επΦ

╚≥αΩ, ∞√ ∩εΩαταδΦ ΣΓα Φτ ε±φεΓφ√⌡ ±ΓεΘ±≥Γα  τ√Ωα ∩≡επ≡α∞∞Φ≡εΓαφΦ  Java

▀τ√Ω Java εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφ

╤Φ±≥σ∞α Java ±ετΣαΓαδα±ⁿ εß·σΩ≥φε ε≡Φσφ≥Φ≡εΓαφφεΘ ± ±α∞επε φα≈αδα. ╬ß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφα  ∩α≡αΣΦπ∞α φαΦßεδσσ ≤Σεßφα ∩≡Φ ±ετΣαφΦΦ ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ  ≥Φ∩α ΩδΦσφ≥-±σ≡Γσ≡, α ≥αΩµσ Σδ  ε≡παφΦτα÷ΦΦ ≡α±∩≡σΣσδσφφ√⌡ Γ√≈Φ±δσφΦΘ.
╬Σφα Φτ ≈σ≡≥, ∩≡Φ±≤∙Φ⌡ εß·σΩ≥α∞, ταΩδ■≈ασ≥±  Γ ≥ε∞, ≈≥ε εß·σΩ≥√ εß√≈φε ∩σ≡σµΦΓα■≥ ∩≡ε÷σΣ≤≡≤, Φ⌡ ±ετΣα■∙≤■. ╬φΦ τα≥σ∞ ∞επ≤≥ ∩σ≡σ∞σ∙α≥ⁿ±  ∩ε ±σ≥Φ, ⌡≡αφΦ≥ⁿ±  Γ ßατα⌡ Σαφφ√⌡ Φ ≥.Σ.
╚ΣσΘφ√∞Φ φα±δσΣφΦΩα∞Φ Java  Γδ ■≥±  ≥αΩΦσ  τ√ΩΦ, ΩαΩ C++, Eiffel, Smalltalk Φ Objective C. ╟α Φ±Ωδ■≈σφΦσ∞ ∩≡Φ∞Φ≥ΦΓφ√⌡ ≥Φ∩εΓ Σαφφ√⌡, ∩≡αΩ≥Φ≈σ±ΩΦ Γ±σ Γ  τ√Ωσ  Γδ σ≥±  εß·σΩ≥ε∞.

╬±φεΓφ√σ ≥≡σßεΓαφΦ  Ω εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφεΘ ±Φ±≥σ∞σ

╬ß·σΩ≥φα  ∞εΣσδⁿ Java

╩δα±±√
╩δα±± σ±≥ⁿ  τ√ΩεΓα  Ωεφ±≥≡≤Ω÷Φ , ε∩≡σΣσδ ■∙α  ∩εδ  Σαφφ√⌡ εß·σΩ≥εΓ Σαφφεπε Ωδα±±α (instance variables) Φ Φ⌡ ∩εΓσΣσφΦσ (methods). ╧≡αΩ≥Φ≈σ±ΩΦ Ωδα±± Γ Java ±α∞ ∩ε ±σßσ φσ  Γδ σ≥±  εß·σΩ≥ε∞. ▌≥ε δΦ°ⁿ °αßδεφ, Ωε≥ε≡√Θ ε∩≡σΣσδ σ≥, Φτ ΩαΩΦ⌡ ≈α±≥σΘ ß≤Σσ≥ ±ε±≥ε ≥ⁿ εß·σΩ≥, ±ετΣαφφ√Θ ± ∩ε∞ε∙ⁿ■ ²≥επε Ωδα±±α, Φ ΩαΩ εφ ß≤Σσ≥ ±σß  Γσ±≥Φ.
╧≡ε±≥σΘ°ΦΘ ∩≡Φ∞σ≡ ε∩Φ±αφΦ  Ωδα±±α

class Point extends Object {
  public double x;
  public double y;
}
╤ετΣαφΦσ εß·σΩ≥α ε∩≡σΣσδσφφεπε Ωδα±±α
╤ετΣα≥ⁿ εß·σΩ≥ ε∩Φ±αφφεπε Γ√°σ Ωδα±±α ∞εµφε ΣσΩδα≡α÷ΦσΘ
Point myPoint;		// εß· ΓδσφΦσ ∩σ≡σ∞σφφεΘ ≥Φ∩α Point
myPoint = new Point();	// ΦφΦ÷ΦαδΦτα÷Φ 
α εß≡α≥Φ≥ⁿ±  Ω ∩εδ ∞ Σαφφ√⌡ ±δσΣ≤■∙Φ∞ εß≡ατε∞
myPoint.x = 10.0;
myPoint.y = 25.7;
╩εφ±≥≡≤Ω≥ε≡√
╧≡Φ εß· ΓδσφΦΦ Ωδα±±α Γετ∞εµφε ≤Ωατα≥ⁿ ∞σ≥εΣ√ ±∩σ÷Φαδⁿφεπε ΓΦΣα, φατ√Γασ∞√σ Ωεφ±≥≡≤Ω≥ε≡α∞Φ Φ ∩≡σΣφατφα≈σφφ√σ Σδ  ΦφΦ÷ΦαδΦτα÷ΦΦ ±ετΣαφφεπε εß·σΩ≥α. ╚∞  ²≥Φ⌡ ∞σ≥εΣεΓ Σεδµφε ±εΓ∩αΣα≥ⁿ ± Φ∞σφσ∞ Ωδα±±α, εφΦ ∞επ≤≥ Φ∞σ≥ⁿ ΩαΩεσ-≥ε ΩεδΦ≈σ±≥Γε α≡π≤∞σφ≥εΓ, φα∩≡Φ∞σ≡
class Point extends Object {
  Point() {
    x = 0.0;
    y = 0.0;
  }
  Point(double x, double y) {
    this.x = x;
    this.y = y;
  }
  public double x;
  public double y;
}
α Φ±∩εδⁿτεΓαφ√ εφΦ ∞επ≤≥ ß√≥ⁿ ±δσΣ≤■∙Φ∞ εß≡ατε∞
Point a;
Point b;
a = new Point();
b = new Point(1.0, 2.0);
εß≡α≥Φ≥σ ΓφΦ∞αφΦσ φα Φ∞  this Γ ε∩≡σΣσδσφΦΦ Ωεφ±≥≡≤Ω≥ε≡α ± α≡π≤∞σφ≥α∞Φ. ╬φε Φ±∩εδⁿτ≤σ≥±  Σδ  εßετφα≈σφΦ  ±α∞επε εß·σΩ≥α, Γ ∞σ≥εΣσ Ωε≥ε≡επε ∞√ φα⌡εΣΦ∞± , Γ ≥σ⌡ ±δ≤≈α ⌡, ΩεπΣα ±±√δΩα φα ²≥ε≥ εß·σΩ≥ φσ ∩εΣ≡ατ≤∞σΓασ≥±  φσ Γφε.
╠σ≥εΣ√ Φ ∩ε±√δΩα ±εεß∙σφΦΘ
┼±δΦ εΣΦφ εß·σΩ≥ Γ ∩≡επ≡α∞∞σ τα±≥αΓδ σ≥ Σ≡≤πεΘ Γ√∩εδφΦ≥ⁿ ΩαΩ≤■-≥ε ε∩σ≡α÷Φ■, ≥ε ∩≡Φφ ≥ε πεΓε≡Φ≥ⁿ, ≈≥ε εφ ∩ε±√δασ≥ ±εεß∙σφΦσ Σ≡≤πε∞≤ εß·σΩ≥≤. ═α∩≡Φ∞σ≡, ∞√ ∞εµσ∞ ∩σ≡σε∩≡σΣσδΦ≥ⁿ φα° Ωδα±± ±δσΣ≤■∙Φ∞ εß≡ατε∞:
Pclass Point extends Object {
  private double x;
  private double y;
  public void setX(double x) {
	this.x = x;
  }
  public void set═(double y) {
	this.y = y;
  }
  ...
}
╠√ ≥σ∩σ≡ⁿ ±ΣσδαδΦ ∩εδ  x Φ y φσΣε±≥≤∩φ√∞Φ ΦτΓφσ Ωδα±±α, φε Σδ  Φτ∞σφσφΦ  Φ⌡ ±ε±≥ε φΦ  ∩≡σΣ≤±∞ε≥≡σδΦ ±∩σ÷Φαδⁿφ√σ ∞σ≥εΣ√ setX Φ setY.
╘ΦφαδΦτα≥ε≡√
╤∩σ÷Φαδⁿφεσ Φ∞  finalize τα≡στσ≡ΓΦ≡εΓαφε Σδ  ∞σ≥εΣα, Ωε≥ε≡√Θ ß≤Σσ≥ Γ√τΓαφ ±ßε≡∙ΦΩε∞ ∞≤±ε≡α ∩σ≡σΣ ≥σ∞, ΩαΩ εß·σΩ≥ ß≤Σσ≥ ≤φΦ≈≥εµσφ. ┬ ±Φδ≤ ≥επε, ≈≥ε Java ε±ΓεßεµΣασ≥ φα± ε≥ φσεß⌡εΣΦ∞ε±≥Φ ±α∞Φ∞ ±δσΣΦ≥ⁿ τα ε±ΓεßεµΣσφΦσ∞ ∩α∞ ≥Φ, ταφΦ∞ασ∞εΘ εß·σΩ≥α∞Φ, φσεß⌡εΣΦ∞ε±≥ⁿ Γ ≥αΩΦ⌡ ∞σ≥εΣα⌡ εß√≈φε ΓετφΦΩασ≥ δΦ°ⁿ ≥επΣα, ΩεπΣα φαΣε ε±ΓεßεΣΦ≥ⁿ ΩαΩΦσ-≥ε Γφσ°φΦσ ≡σ±≤≡±√, φα∩≡Φ∞σ≡, ταΩ≡√≥ⁿ ε≥Ω≡√≥√Θ ⌠αΘδ:
protected void finalize() {
  try {
    file.close();
  } catch (Exception e) {
  }
}
╧≡εΦτΓεΣφ√σ Ωδα±±√
═α±δσΣεΓαφΦσ Ωδα±±εΓ ∩ετΓεδ σ≥ ±ετΣαΓα≥ⁿ φεΓ√σ ≥Φ∩√ εß·σΩ≥εΓ, ²⌠⌠σΩ≥ΦΓφε Φ±∩εδⁿτ≤■∙Φσ ⌠≤φΩ÷Φεφαδⁿφε±≥ⁿ ≤µσ ±≤∙σ±≥Γ≤■∙Φ⌡ ≥Φ∩εΓ. ═εΓ√Θ ≥Φ∩ εß√≈φε φατ√Γασ≥±  ∩≡εΦτΓεΣφ√∞ Ωδα±±ε∞, α ≥ε≥, ≈ⁿΦ ±ΓεΘ±≥Γα φα±δσΣ≤■≥±  -- ßατεΓ√∞ Ωδα±±ε∞.
═α∩≡Φ∞σ≡, ∞√ ∞εµσ∞ ε∩Φ±α≥ⁿ φεΓ√Θ Ωδα±±, ±εε≥Γσ≥±≥Γ≤■∙ΦΘ Ωεε≡ΣΦφα≥α∞ ≥ε≈ΩΦ Γ ≥≡σ⌡∞σ≡φε∞ ∩≡ε±≥≡αφ±≥Γσ, φα ε±φεΓσ ≤µσ ε∩Φ±αφφεπε Ωδα±±α Σδ  ≥ε≈ΩΦ φα ∩δε±Ωε±≥Φ.
class ThreePoint extends Point {
  protected double z;
  ThreePoint() {
    super();
    z = 0.0;
  }
  ThreePoint(double x, double y, double z) {
    super(x, y);
    this.z = z;
  }
}
╟Σσ±ⁿ ∞√ ΣεßαΓΦδΦ φεΓ≤■ Ωεε≡ΣΦφα≥≤ z, α ∩εδ  x Φ y (Φ ∞σ≥εΣ√ Σε±≥≤∩α Ω φΦ∞) ≤φα±δσΣεΓαδΦ ε≥ Ωδα±±α Point.
╩εφ≥≡εδⁿ Σε±≥≤∩α
╩εφ≥≡εδⁿ Σε±≥≤∩α Ω Σαφφ√∞ Φ ∞σ≥εΣα∞ εß·σΩ≥α Γ Java φσ±ΩεδⁿΩε ε≥δΦ≈ασ≥±  ε≥ ╤++. ╧ε∞Φ∞ε ≥≡σ⌡ ≤≡εΓφσΘ Σε±≥≤∩α, Φ∞σ■∙Φ⌡±  Γ ╤++ (public, private, protected) Φ∞σσ≥±  ≈σ≥Γσ≡≥√Θ, φα⌡εΣ ∙ΦΘ±  πΣσ-≥ε ∞σµΣ≤ ≤≡εΓφ ∞Φ public Φ protected. ╬φ φσ Φ∞σσ≥ Φ∞σφΦ Φ Φ±∩εδⁿτ≤σ≥±  ∩ε ≤∞εδ≈αφΦ■, ΩεπΣα  Γφε φσ ≤Ωαταφ Σ≡≤πεΘ ≤≡εΓσφⁿ. ╧εδ  ²≥επε ≥Φ∩α Σε±≥≤∩φ√ Γφ≤≥≡Φ ≥εδⁿΩε εΣφεπε ∩≡επ≡α∞∞φεπε ∩αΩσ≥α. ╧αΩσ≥ ∩≡σΣ±≥αΓδ σ≥ π≡≤∩∩≤ Ωδα±±εΓ, εß·σΣΦφσφφ√⌡ Γ εΣφ≤ δεπΦ≈σ±Ω≤■ π≡≤∩∩≤. ═α∩≡Φ∞σ≡, Ωδα±±√, ε∩Φ±√Γα■∙Φσ ≥ε≈Ω≤ Φ ∩≡ ∞ε≤πεδⁿφΦΩ Γ π≡α⌠Φ≈σ±Ωε∞ ∩αΩσ≥σ, ∞επ≤≥ Φ∞σ≥ⁿ ∩≡ ∞εΘ Σε±≥≤∩ Ω ∩εδ ∞ Σαφφ√⌡ Σ≡≤π Σ≡≤πα, τα∩≡σ∙σφφ√Θ εß√≈φε Σδ  ε±≥αδⁿφεπε ∞Φ≡α.
╥αΩµσ ±δσΣ≤σ≥ ε≥∞σ≥Φ≥ⁿ, ≈≥ε Ωεφ≥≡εδⁿ Σε±≥≤∩α Γ C++ ∩ε∞επασ≥ ∩≡επ≡α∞∞Φ±≥≤ δΦ°ⁿ ∩≡Φ ∩ε±≥≡εσφΦΦ ∩≡επ≡α∞∞√. ╨ατδΦ≈Φ  ∞σµΣ≤ ∩εδ ∞Φ, ∩ε∞σ≈σφφ√∞Φ public Φ private, ε≥±≤≥±≥Γ≤■≥ Γ Γ√∩εδφ σ∞ε∞ ∞εΣ≤δσ, ±ετΣαφφε∞ ± Φ±∩εδⁿτεΓαφΦσ∞ ²≥επε  τ√Ωα. ┬ Java Ωεφ≥≡εδⁿ Σε±≥≤∩α ≡σαδσφ, ≥.Ω. εφ ε±≤∙σ±≥Γδ σ≥±  φσ ≥εδⁿΩε ∩≡Φ Ωε∞∩Φδ ÷ΦΦ, φε Φ φσ∩ε±≡σΣ±≥Γσφφε ∩σ≡σΣ τα∩≤±Ωε∞ ΩεΣεΓ φα Γ√∩εδφσφΦσ ΓΦ≡≥≤αδⁿφεΘ ∞α°ΦφεΘ.
╧σ≡σ∞σφφ√σ Φ ∞σ≥εΣ√ Ωδα±±α
╩αΩ Φ ╤++  τ√Ω Java ∩ετΓεδ σ≥ Φ±∩εδⁿτεΓα≥ⁿ ∩σ≡σ∞σφφ√σ Φ ∞σ≥εΣ√, ∩≡ΦφαΣδσµα∙Φσ Ωδα±±≤ ÷σδΦΩε∞. ─δ  ε∩≡σΣσδσφΦ  Φ⌡ Φ±∩εδⁿτ≤σ≥±  Ωδ■≈σΓεσ ±δεΓε static. ┼±≥σ±≥Γσφφε, ≈≥ε ∞σ≥εΣ√ ±α∞επε Ωδα±±α φσ ∞επ≤≥ ε∩σ≡Φ≡εΓα≥ⁿ Σαφφ√∞Φ Φ ∞σ≥εΣα∞Φ εß·σΩ≥α Ωδα±±α, ≥.Ω. εφΦ φσ ε≥φε± ≥±  φΦ Ω ΩαΩε∞≤ ε∩≡σΣσδσφφε∞≤ εß·σΩ≥≤.

═α∩≡Φ∞σ≡, Γσ≡±Φ  ≡σαδΦτα÷ΦΦ Ωδα±±α Rectangle ∞εµσ≥ ß√≥ⁿ ταΣαφα ±δσΣ≤■∙Φ∞ εß≡ατε∞:
class Rectangle extends Object {
  static final int version = 2 ;
  static final int revision = 0 ;
}
╩δ■≈σΓεσ ±δεΓε final ετφα≈ασ≥, ≈≥ε τφα≈σφΦσ ∩εδ  εΩεφ≈α≥σδⁿφεσ Φ Φτ∞σφσφΦ■ φσ ∩εΣδσµΦ≥ (²≥ε Ωεφ±≥αφ≥α).
└ß±≥≡αΩ≥φ√σ ∞σ≥εΣ√
└ß±≥≡αΩ≥φ√σ ∞σ≥εΣ√ -- ²≥ε ∞σ≥εΣ√, Σδ  Ωε≥ε≡√⌡ Γ Σαφφε∞ Ωδα±±σ φσ ε∩≡σΣσδσφα Φ⌡ ≡σαδΦτα÷Φ . ╠√ ≤Ωατ√Γασ∞ δΦ°ⁿ φα φσεß⌡εΣΦ∞ε±≥ⁿ φαδΦ≈Φ  ∞σ≥εΣεΓ ± Σαφφ√∞ ∩≡ε≥εΩεδε∞. ╩εφΩ≡σ≥φα  ≡σαδΦτα÷Φ  Σεδµφα ß√≥ⁿ ε±≤∙σ±≥Γδσφα Ωδα±±α∞Φ-φα±δσΣφΦΩα∞Φ. ┬ ≥ε µσ Γ≡σ∞  ε±≥αδⁿφα , "φσαß±≥≡αΩ≥φα " ≈α±≥ⁿ Ωδα±±α ∞εµσ≥ ±εΣσ≡µα≥ⁿ ΩεφΩ≡σ≥φ≤■ Φφ⌠ε≡∞α÷Φ■, Ωε≥ε≡α  ∞εµσ≥ ß√≥ⁿ Φ±∩εδⁿτεΓαφα ∩≡εΦτΓεΣφ√∞Φ Ωδα±±α∞Φ. ═α∩≡Φ∞σ≡
abstract class Graphical extends Object
{
  protected Point lowerLeft;
  protected Point upperRight;
  ...
  public void setPosition(Point ll, Point ur)
  {
    lowerLeft = ll;
    upperRight = ur;
  }
  abstract void drawMyself();
}
class Rectangle extends Graphical
{
  void drawMyself()
    {
      ....      
    }
}
╟Σσ±ⁿ ∞√ ε∩Φ±αδΦ Ωδα±± Graphical. ┬ φσ∞ εß· Γδσφε ±ΓεΘ±≥Γε Γ±σ⌡ π≡α⌠Φ≈σ±ΩΦ⌡ ²δσ∞σφ≥εΓ Φ∞σ≥ⁿ ΩαΩεσ-≥ε ∩εδεµσφΦσ φα ∩δε±Ωε±≥Φ. ╩αµΣ√Θ ²δσ∞σφ≥ εß ταφ ≥αΩµσ Φ∞σ≥ⁿ ∞σ≥εΣ Σδ  ≡Φ±εΓαφΦ  ±α∞επε ±σß , εΣφαΩε φΦΩαΩεπε ∞σ≥εΣα ≡Φ±εΓαφΦ  ∩ε-≤∞εδ≈αφΦ■ ß√≥ⁿ φσ ∞εµσ≥. ╩δα±± Rectangle, ∩≡σΣ±≥αΓδ ■∙ΦΘ ±εßεΘ ΩεφΩ≡σ≥φ≤■ ≡σαδΦτα÷Φ■ Σδ  ≥Φ∩α Graphical, ≡σαδΦτ≤σ≥ ≥αΩµσ ²≥ε≥ ∞σ≥εΣα Σδ  εß·σΩ≥α ∩≡ ∞ε≤πεδⁿφεΘ ⌠ε≡∞√.
╩δα±±, ±εΣσ≡µα∙ΦΘ ⌡ε≥  ß√ εΣΦφ αß±≥≡αΩ≥φ√Θ ∞σ≥εΣ, Σεδµσφ ß√≥ⁿ εß· Γδσφ ΩαΩ αß±≥≡αΩ≥φ√Θ. ╧ε ∩εφ ≥φ√∞ ∩≡Φ≈Φφα∞ ±ετΣαφΦσ ²Ωτσ∞∩δ ≡εΓ ≥αΩεπε Ωδα±±α φσΓετ∞εµφε.

╚≥επΦ

╬±Γσ∙σφ√ ±δσΣ≤■∙Φσ ±≥ε≡εφ√ Java ΩαΩ εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφεπε  τ√Ωα ∩≡επ≡α∞∞Φ≡εΓαφΦ .

═σΘ≥≡αδⁿφ√Θ Ω α≡⌡Φ≥σΩ≥≤≡σ, ∩σ≡σφε±Φ∞√Θ Φ Φφ≥σδδσΩ≥≤αδⁿφ√Θ

═σΘ≥≡αδⁿφε±≥ⁿ Ω α≡⌡Φ≥σΩ≥≤≡σ

─ε±≥Φπασ≥±  ∩≡σµΣσ Γ±σπε ±≥αφΣα≡≥Φτα÷ΦσΘ "ßΦφα≡φεπε ⌠ε≡∞α≥α ΩεΣεΓ". ╧≡ε∞σµ≤≥ε≈φ√Θ ΩεΣ φσ ταΓΦ±Φ≥ ε≥ ΩεφΩ≡σ≥φεΘ α∩∩α≡α≥φεΘ ∩δα≥⌠ε≡∞√, ε∩σ≡α÷ΦεφφεΘ ±Φ±≥σ∞√ Φ ≥Φ∩α εΩεφφεπε Φφ≥σ≡⌠σΘ±α. ─δ  ≥επε, ≈≥εß√ ∩≡επ≡α∞∞√, φα∩Φ±αφφ√σ φα Java, ∞επδΦ ≡αßε≥α≥ⁿ φα ΣαφφεΘ α∩∩α≡α≥φε-∩≡επ≡α∞∞φεΘ ∩δα≥⌠ε≡∞σ, Σε±≥α≥ε≈φε, ≈≥εß√ Σδ  φσσ ß√δα ±ετΣαφα δΦ°ⁿ ±εε≥Γσ≥±≥Γ≤■∙α  ΓΦ≡≥≤αδⁿφα  ∞α°Φφα.
┴αΘ≥-ΩεΣ√
╩ε∞∩Φδ ≥ε≡ Java ∩≡εΦτΓεΣΦ≥ φσ "∞α°Φφφ√σ ΩεΣ√" ∩εΣεßφε ≥ε∞≤, ΩαΩ ²≥ε Σσδασ≥, φα∩≡Φ∞σ≡, Ωε∞∩Φδ ≥ε≡  τ√Ωα ╤. ┬∞σ±≥ε ²≥επε πσφσ≡Φ≡≤■≥±  ≥αΩ φατ√Γασ∞√σ ßαΘ≥-ΩεΣ√: Γ√±εΩε≤≡εΓφσΓ√σ ∞α°ΦφφεφσταΓΦ±Φ∞√σ ΩεΣ√ Σδ  αß±≥≡αΩ≥φεΘ ∞α°Φφ√, Ωε≥ε≡α  Σεδµφα ß√≥ⁿ ≡σαδΦτεΓαφα Γ ΓΦΣσ Φφ≥σ≡∩≡σ≥α≥ε≡α Java Φ run-time ±Φ±≥σ∞√.
╤α∞α ∩ε ±σßσ ΦΣσ  ßαΘ≥-ΩεΣεΓ φσ φεΓα, εφΦ °Φ≡εΩε Φ±∩εδⁿτ≤■≥±  Γ ≡ατδΦ≈φ√⌡ ±Φ±≥σ∞α⌡ φα≈Φφα  ± ±σ≡σΣΦφ√ ±σ∞ΦΣσ± ≥√⌡ πεΣεΓ. ╬±εßσφφε±≥Φ Java ßαΘ≥-∞α°Φφ√ ±δσΣ≤■∙Φσ:

╧σ≡σφε±Φ∞ε±≥ⁿ φα Σ≡≤πΦσ α≡⌡Φ≥σΩ≥≤≡√

╩≡ε∞σ φσταΓΦ±Φ∞ε±≥Φ ΩεΣεΓ ε≥ ΩεφΩ≡σ≥φεΘ α≡⌡Φ≥σΩ≥≤≡√ Java µσ±≥Ωε ±∩σ÷Φ⌠Φ÷Φ≡≤σ≥ ⌠ε≡∞α≥ ßατεΓ√⌡ ≥Φ∩εΓ Σαφφ√⌡. ┴στ ²≥επε εΣφα Φ ≥α µσ ∩≡επ≡α∞∞α, ±Ωε∞∩ΦδΦ≡εΓαφφα  Σδ  ≡ατφ√⌡ α∩∩α≡α≥φ√⌡ ∩δα≥⌠ε≡∞, Γσδα ß√ ±σß  ∩ε-≡ατφε∞≤. ═α∩≡Φ∞σ≡, ±≥αφΣα≡≥ ╤/╤++ φσ ∩≡σΣ≤±∞α≥≡ΦΓασ≥ ΩεφΩ≡σ≥φεπε ∩≡σΣ±≥αΓδσφΦ  Σδ  ÷σδεπε ≥Φ∩α int. ╧≡σΣ∩εδαπασ≥± , ≈≥ε ²≥ε∞≤ ≥Φ∩≤ ±εε≥Γσ≥±≥Γ≤σ≥ ε±φεΓφεΘ ⌠ε≡∞α≥ ∞α°Φφφεπε ±δεΓα Σδ  ΣαφφεΘ α≡⌡Φ≥σΩ≥≤≡√. ┬ ≡στ≤δⁿ≥α≥σ ∩≡επ≡α∞∞α, φα∩Φ±αφφα  Σδ  32-≡ατ≡ Σφεπε ∩≡ε÷σ±±ε≡α, ≈α∙σ Γ±σπε ∩σ≡σφε±Φ≥±  φα 16-≡ατ≡ Σφ≤■ α≡⌡Φ≥σΩ≥≤≡≤ ± ε≈σφⁿ ßεδⁿ°Φ∞Φ ≤±ΦδΦ ∞Φ.
╥αΩΦ∞ εß≡ατε∞, ≡σ°σφΦσ τα⌠ΦΩ±Φ≡εΓα≥ⁿ ⌠ε≡∞α≥√ ßατεΓ√⌡ ≥Φ∩εΓ Σαφφ√⌡ Γ Java Γ∩εδφσ σ±≥σ±≥Γσφφε. ╩αµΣα  Java-∞α°Φφα εß ταφα ≡σαδΦτεΓα≥ⁿ Φ⌡ ±δσΣ≤■∙Φ∞ εß≡ατε∞:

byte		8-bit two's complement
short		16-bit two's complement
int		32-bit two's complement
long		64-bit two's complement
float		32-bit IEEE 754 floating point
double		64-bit IEEE 754 floating point
char		16-bit Unicode character
┬√ßε≡ Φ∞σφφε ≥αΩεπε φαßε≡α ßατεΓ√⌡ ≥Φ∩εΓ Φ Φ⌡ ⌠ε≡∞α≥α εß≤±δεΓδσφ ≥σ∞, ≈≥ε ∩≡αΩ≥Φ≈σ±ΩΦ δ■ßεΘ ±εΓ≡σ∞σφφ√Θ ÷σφ≥≡αδⁿφ√Θ ∩≡ε÷σ±±ε≡ ∩εΣΣσ≡µΦΓασ≥ ²≥Φ ⌠ε≡∞α≥√.
┴εδσσ ≥επε, ∩σ≡σφε± ±α∞εΘ ±≡σΣ√ ∞εµσ≥ ß√≥ⁿ ε±≤∙σ±≥Γδσφ Σε±≥α≥ε≈φε ∩≡ε±≥ε. ╩ε∞∩Φδ ≥ε≡ Java ±α∞ φα∩Φ±αφ φα ²≥ε∞  τ√Ωσ. ┬Φ≡≥≤αδⁿφα  ∞α°Φφα φα∩Φ±αφα φα ANSI C Γ ±εε≥Γσ≥±≥ΓΦΦ ±ε ±≥αφΣα≡≥ε∞ POSIX. ╤∩σ÷Φ⌠ΦΩα÷Φ   τ√Ωα φσ ±εΣσ≡µΦ≥ ±±√δεΩ ≥Φ∩α "Γ ταΓΦ±Φ∞ε±≥Φ ε≥ ΩεφΩ≡σ≥φεΘ ≡σαδΦτα÷ΦΦ".

╚φ≥σδδσΩ≥≤αδⁿφε±≥ⁿ

╤Φ±≥σ∞α Java ∩≡σΣφατφα≈σφα Σδ  ±ετΣαφΦ  ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ , Ωε≥ε≡εσ Σεδµφε ß√≥ⁿ Φφ≥σδδσΩ≥≤αδⁿφ√∞, ∩≡σΣσδⁿφε φαΣσµφ√∞ Φ ßστε∩α±φ√∞ ∩ε ∞φεµσ±≥Γ≤ ∩α≡α∞σ≥≡εΓ. ╬±εßεσ ΓφΦ∞αφΦσ ≤Σσδ σ≥±  ΩαΩ ≡αφφσΘ ΣΦαπφε±≥ΦΩσ Γετ∞εµφ√⌡ ∩≡εßδσ∞, ≥αΩ Φ ∩ετΣφσΘ, Γε Γ≡σ∞  Γ√∩εδφσφΦ  ΩεΣεΓ.
╞σ±≥Ωα  ∩≡εΓσ≡Ωα φα ²≥α∩σ Ωε∞∩Φδ ÷ΦΦ Φ Γε Γ≡σ∞  Γ√∩εδφσφΦ 
╩ε∞∩Φδ ÷Φ  ±  τ√Ωα Java ∩≡σΣ≤±∞α≥≡ΦΓασ≥ µσ±≥Ω≤■ ∩≡εΓσ≡Ω≤ Φ±⌡εΣφ√⌡ ≥σΩ±≥εΓ, ∞φεµσ±≥Γε ε°ΦßεΩ ∞εµσ≥ ß√≥ⁿ Γ√ Γδσφε ≤µσ φα ²≥ε∞ ²≥α∩σ.
╬ΣφΦ∞ Φτ ∩≡σΦ∞≤∙σ±≥Γ  τ√Ωα ╤++ ΩαΩ ±≥≡επε ≥Φ∩ΦτεΓαφφεπε  τ√Ωα  Γδ σ≥±  Γετ∞εµφε±≥ⁿ ≡αφφσπε Γ√ ΓδσφΦ  φσΩε≥ε≡√⌡ Ωα≥σπε≡ΦΘ ε°ΦßεΩ. ╬ΣφαΩε Γε ∞φεπε∞ ²≥ε≥  τ√Ω φα±δσΣ≤σ≥ ±ΓεΘ±≥Γα ╤, ∩ετΓεδ   φα≡≤°α≥ⁿ ≥≡σßεΓαφΦ  ±≥≡επεπε εß· ΓδσφΦ  ⌠≤φΩ÷ΦΘ Φ ∞σ≥εΣεΓ. ▀τ√Ω Java ≥≡σß≤σ≥  Γφεπε εß· ΓδσφΦ  ∩≡ε≥ε≥Φ∩εΓ Φ φσ ∩εΣΣσ≡µΦΓασ≥ ⌡α≡αΩ≥σ≡φ√⌡ Σδ  ╤ φσ Γφ√⌡ ∩≡σεß≡ατεΓαφΦΘ.
╟φα≈Φ≥σδⁿφεσ ≈Φ±δε ∩≡εΓσ≡εΩ, ∩≡εΦτΓεΣΦ∞√⌡ Ωε∞∩Φδ ≥ε≡ε∞, ∩εΓ≥ε≡ ■≥±  ΓΦ≡≥≤αδⁿφεΘ ∞α°ΦφεΘ φσ∩ε±≡σΣ±≥Γσφφε ∩σ≡σΣ Γ√∩εδφσφΦσ∞ ∩≡ΦδεµσφΦ . ╦ΦφΩσ≡ ∩εδ≤≈ασ≥ Γ±■ Φφ⌠ε≡∞α÷Φ■ ε ∩≡ε≥ε≥Φ∩α⌡ ∞σ≥εΣεΓ Φ φα ε±φεΓσ σσ ∩≡εΦτΓεΣΦ≥ ≥αΩ≤■ µσ ∩≡εΓσ≡Ω≤, ΩαΩ Φ Ωε∞∩Φδ ≥ε≡, ∩ετΓεδ   Φτßσµα≥ⁿ ≡α±⌡εµΣσφΦΘ Γ Γσ≡±Φ ⌡ ∞σµΣ≤ ε≥Σσδⁿφ√∞Φ ∞εΣ≤δ ∞Φ.
═αΦßεδσσ ±≤∙σ±≥Γσφφεσ ε≥δΦ≈Φσ  τ√Ωα Java ε≥ ╤ ΦδΦ ╤++ ταΩδ■≈ασ≥±  Γ ≥ε∞, ≈≥ε α≡⌡Φ≥σΩ≥≤≡α Java φσ ∩ετΓεδ σ≥ ±δ≤≈αΘφε ΦδΦ φα∞σ≡σφφε ∩εΓ≡σΣΦ≥ⁿ ∩α∞ ≥ⁿ ∩≡επ≡α∞∞√. ┬∞σ±≥ε α≡Φ⌠∞σ≥ΦΩΦ ≤Ωατα≥σδσΘ Java Φ±∩εδⁿτ≤σ≥ ∩εδφε÷σφφ√σ εß·σΩ≥√ Σδ  ∞α±±ΦΓεΓ Φ ±≥≡εΩ, ≈≥ε ∩ετΓεδ σ≥ Ωεφ≥≡εδΦ≡εΓα≥ⁿ ΦφΣσΩ±√ Σε±≥≤∩α Ω φΦ∞ Γε Γ≡σ∞  Γ√∩εδφσφΦ . ╩≡ε∞σ ≥επε, φσΓετ∞εµφ√ ∩≡σΓ≡α∙σφΦ  ∞σµΣ≤ ÷σδ√∞Φ ≈Φ±δα∞Φ Φ ≤Ωατα≥σδ ∞Φ.
┼±≥σ±≥Γσφφε, ≈≥ε Γ±σ ²≥ε φσ ∞εµσ≥ ∩εδφε±≥ⁿ■ πα≡αφ≥Φ≡εΓα≥ⁿ ∩≡επ≡α∞∞Φ±≥α ε≥ δ■ß√⌡ ε°ΦßεΩ, εΣφαΩε, Java ≤±≥≡αφ σ≥ ÷σδ√Θ Ωδα±± Φ⌡, ±≤∙σ±≥Γσφφε εßδσπ≈α  ταΣα≈≤ ≡ατ≡αßε≥≈ΦΩα.

╚φ≥σ≡∩≡σ≥Φ≡≤σ∞√Θ Φ ΣΦφα∞Φ≈σ±ΩΦΘ

─δ  ≡ατ≡αßε≥≈ΦΩα, Φ±∩εδⁿτ≤■∙σπε Γ ±ΓεσΘ ≡αßε≥σ εß√≈φ√σ Ωε∞∩ΦδΦ≡≤σ∞√σ  τ√ΩΦ, ÷ΦΩδ ≡ατ≡αßε≥ΩΦ εß√≈φε Γ√πδ ΣΦ≥ ±δσΣ≤■∙Φ∞ εß≡ατε∞: ≡σΣαΩ≥Φ≡εΓα≥ⁿ ≥σΩ±≥ -- ±Ωε∞∩ΦδΦ≡εΓα≥ⁿ σπε -- ±εß≡α≥ⁿ ∩≡επ≡α∞∞≤ δΦφΩσ≡ε∞ -- ταπ≡≤τΦ≥ⁿ -- ΣεΓσ±≥Φ σσ Σε "∩αΣσφΦ " -- ≡α±±∞ε≥≡σ≥ⁿ εßδε∞ΩΦ -- φα≈α≥ⁿ Γ±σ ± φα≈αδα.
╩≡ε∞σ ≥επε, ∩≡Φ⌡εΣΦ≥±  ∩ε±≥ε φφε ±δσΣΦ≥ⁿ τα ≥σ∞, ΩαΩΦσ Φτ Φ±⌡εΣφ√⌡ ≥σΩ±≥εΓ ∩εΣδσµα≥ ∩σ≡σΩε∞∩Φδ ÷ΦΦ. ─δ  ²≥επε εß√≈φε Φ±∩εδⁿτ≤■≥±  Σε∩εδφΦ≥σδⁿφ√σ Φφ±≥≡≤∞σφ≥√ (φα∩≡Φ∞σ≡, ∩ε∩≤δ ≡φα  ≤≥ΦδΦ≥α make), ≈α±≥ε φσ ±Γ ταφφ√σ ± ΩεφΩ≡σ≥φ√∞  τ√Ωε∞ ∩≡επ≡α∞∞Φ≡εΓαφΦ  Φ Φ±∩εδⁿτ≤■∙Φσ Ω≡αΘφσ Ωεφ±σ≡Γα≥ΦΓφ√Θ ∩εΣ⌡εΣ -- ∩σ≡σΩε∞∩ΦδΦ≡εΓαφε Σεδµφε ß√≥ⁿ Γ±σ, ≈≥ε ≥σε≡σ≥Φ≈σ±ΩΦ ∞επδε ß√≥ⁿ τα≥≡εφ≤≥ε Φτ∞σφσφΦσ∞. ╧ε ∞σ≡σ ≥επε, ΩαΩ Φ±⌡εΣφ√σ ≥σΩ±≥√ ∩≡ΦδεµσφΦ  ≡ατ≡α±≥α■≥±  Σε ±ε≥σφ ≥√± ≈ ±≥≡εΩ, ΓταΦ∞εταΓΦ±Φ∞ε±≥Φ ±Γ τ√Γα■≥ ≈α±≥Φ ∩≡εσΩ≥α Ω≡σ∩≈σ Φ Ω≡σ∩≈σ, ±Ωε≡ε±≥ⁿ ≡ατ≡αßε≥ΩΦ ∩≡ΦßδΦµασ≥±  Ω φ≤δ■.
╤Φ±≥σ∞α Java Γ ±Φδ≤ ±ΓεσΘ Φφ≥σ≡∩≡σ≥Φ≡≤σ∞εΘ Φ ΣΦφα∞Φ≈σ±ΩεΘ ∩≡Φ≡εΣ√ τφα≈Φ≥σδⁿφε ßεδσσ ∩εΣ⌡εΣΦ≥ Σδ  ÷σδσΘ ß√±≥≡εΘ ≡ατ≡αßε≥ΩΦ φαΣσµφ√⌡ ∩≡επ≡α∞∞.
╩αΩ ≤µσ ß√δε ε≥∞σ≈σφε Γ√°σ, φα Γ√⌡εΣσ Ωε∞∩Φδ ≥ε≡α Java ∞√ ∩εδ≤≈ασ∞ ßαΘ≥-ΩεΣ√ Σδ  ┬Φ≡≥≤αδⁿφεΘ ╠α°Φφ√ Java. ╧εδφα  ±∩σ÷Φ⌠ΦΩα÷Φ  ΓΦ≡≥≤αδⁿφεΘ ∞α°Φφ√ ε≥Ω≡√≥α Φ εß∙σΣε±≥≤∩φα. ╬φα ∞εµσ≥ ß√≥ⁿ ≡σαδΦτεΓαφα ∩≡αΩ≥Φ≈σ±ΩΦ φα δ■ßεΘ Φτ ±εΓ≡σ∞σφφ√⌡ ∩≡επ≡α∞∞φε-α∩∩α≡α≥φ√⌡ ∩δα≥⌠ε≡∞. ╧ε±δσ ²≥επε ∩≡επ≡α∞∞√ φα  τ√Ωσ Java ∞επ≤≥ ß√≥ⁿ ±εß≡αφ√ Φτ δ■ß√⌡ ∞σ±≥ Γ ±σ≥Φ Φ ≡αßε≥α≥ⁿ φα ²≥εΘ ∩δα≥⌠ε≡∞σ ≥αΩ µσ, ΩαΩ Φ φα δ■ßεΘ Σ≡≤πεΘ.
╧≡ε÷σ±± ±ßε≡ΩΦ ∩≡επ≡α∞∞√ (linking) ±≤∙σ±≥Γσφφε ≤±Ωε≡σφ ∩ε ±≡αΓφσφΦ■ ± εß√≈φ√∞Φ Ωε∞∩ΦδΦ≡≤σ∞√∞Φ ±Φ±≥σ∞α∞Φ. ╬φ ∩≡σΣ±≥αΓδ σ≥ ±εßεΘ ∩εΣπ≡≤τΩ≤ φσεß⌡εΣΦ∞√⌡ Ωδα±±εΓ Φ ∩≡εΦτΓεΣΦ≥±  ΦφΩ≡σ∞σφ≥αδⁿφε, ≥.σ. φσΣε±≥α■∙Φσ ≈α±≥Φ ∩εΣπ≡≤µα■≥±  ∩ε ∞σ≡σ φαΣεßφε±≥Φ, ≈≥ε ≥αΩµσ ∩≡ΦΓεΣΦ≥ Ω ±εΩ≡α∙σφΦ■ Γ≡σ∞σφΦ ÷ΦΩδα ≡ατ≡αßε≥ΩΦ.

─Φφα∞Φ≈σ±Ωα  ταπ≡≤τΩα Φ ±Γ τ√ΓαφΦσ

╥ε, ≈≥ε Java  Γδ σ≥±  Φφ≥σ≡∩≡σ≥α≥ε≡ε∞, ∩ετΓεδ σ≥ ≡α±°Φ≡ ≥ⁿ ±Φ±≥σ∞≤ ΣΦφα∞Φ≈σ±ΩΦ. ╬≥Σσδⁿφ√σ Ωδα±±√ ταπ≡≤µα■≥±  δΦ°ⁿ ∩ε ∞σ≡σ φσεß⌡εΣΦ∞ε±≥Φ Φ ∞επ≤≥ ß√≥ⁿ ±εß≡αφ√ Φτ ≡ατδΦ≈φ√⌡ ∞σ±≥ Γ ±σ≥Φ. ╧σ≡σΣ τα∩≤±Ωε∞ φα Γ√∩εδφσφΦσ ΩεΣ√ ∩≡ε⌡εΣ ≥ µσ±≥Ω≤■ ∩≡εΓσ≡Ω≤.
┬ φα±≥ε ∙σσ Γ≡σ∞  εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√Θ ∩εΣ⌡εΣ ±≥αδ εß∙σ∩≡Φφ ≥√∞. ┬ Ωα≈σ±≥Γσ  τ√Ωα ∩≡επ≡α∞∞Φ≡εΓαφΦ  ∩≡Φ ²≥ε∞ εß√≈φε Γ√ßΦ≡α■≥ ╤++. ╬ΣφαΩε ²≥ε≥  τ√Ω εßδαΣασ≥ ε∩≡σΣσδσφφ√∞ φσΣε±≥α≥Ωε∞, Ωε≥ε≡√Θ ΦτΓσ±≥σφ ∩εΣ φατΓαφΦσ∞ "∩≡εßδσ∞√ ⌡≡≤∩Ωε±≥Φ ßατεΓεπε Ωδα±±α" (fragile superclass problem).
"╧≡εßδσ∞α ⌡≡≤∩Ωε±≥Φ ßατεΓεπε Ωδα±±α" Γ ╤++
▌≥α ∩≡εßδσ∞α ΓετφΦΩασ≥ ΩαΩ ∩εßε≈φ√Θ ²⌠⌠σΩ≥ ≡σαδΦτα÷ΦΦ ∞εΣσδΦ ╤++. ╩αµΣ√Θ ≡ατ, ΩεπΣα ┬√ ΣεßαΓδ σ≥σ φεΓ√Θ ∞σ≥εΣ ΦδΦ ∩σ≡σ∞σφφ≤■ Γ Ωδα±±, Γ±σ ε±≥αδⁿφ√σ ∞εΣ≤δΦ ∩≡ΦδεµσφΦ , Φ±∩εδⁿτ≤■∙Φσ ²≥ε≥ Ωδα±±, ≥≡σß≤■≥ ∩σ≡σΩε∞∩Φδ ÷ΦΦ. ┬ ∩≡ε≥ΦΓφε∞ ±δ≤≈ασ ∩≡επ≡α∞∞α ≤±∩σ°φε ±εßΦ≡ασ≥± , α ∩≡Φ τα∩≤±Ωσ ≥αΩ µσ ≤±∩σ°φε ≡ατΓαδΦΓασ≥± . ─αµσ ∩≡Φ Φ±∩εδⁿτεΓαφΦΦ ±∩σ÷Φαδⁿφ√⌡ ≤≥ΦδΦ≥ ≥Φ∩α make φσ≥ε≈φεσ ε≥±δσµΦΓαφΦσ ΓταΦ∞εταΓΦ±Φ∞ε±≥σΘ ∞σµΣ≤ Ωδα±±α∞Φ  Γδ σ≥±  φσΦ±± Ωα■∙Φ∞ Φ±≥ε≈φΦΩε∞ ε°ΦßεΩ. ▌≥α ∩≡εßδσ∞α "⌡≡≤∩Ωε±≥Φ ßατεΓεπε Ωδα±±α" ≥αΩµσ ≈α±≥ε Φ∞σφ≤σ≥±  ΩαΩ ∩≡εßδσ∞α "∩ε±≥ε φφεΘ ∩σ≡σΩε∞∩Φδ ÷ΦΦ". ╚τßσµα≥ⁿ σσ ∞εµφε ∩≤≥σ∞ ≡ατφεεß≡ατφ√⌡ ≤δεΓεΩ, εß√≈φε ±Γ ταφφ√⌡ ± ε≥Ωατε∞ ε≥ ∩≡ ∞επε Φ±∩εδⁿτεΓαφΦ  εß·σΩ≥φε-ε≡Φσφ≥Φ≡εΓαφφ√⌡ ±ΓεΘ±≥Γ  τ√Ωα.
╨σ°σφΦσ "∩≡εßδσ∞√ ⌡≡≤∩Ωε±≥Φ ßατεΓεπε Ωδα±±α"
┬ ±Φ±≥σ∞σ ∩≡επ≡α∞∞Φ≡εΓαφΦ  Java ²≥α ∩≡εßδσ∞α ≡σ°ασ≥±  Γ φσ±ΩεδⁿΩε ²≥α∩εΓ. ┬ε-∩σ≡Γ√⌡, Ωε∞∩Φδ ≥ε≡ φσ ≡ατ≡σ°ασ≥ ±±√δεΩ Γ∩δε≥ⁿ Σε ≈Φ±δσφφ√⌡ τφα≈σφΦΘ. ═α∩≡ε≥ΦΓ, ±Φ∞Γεδⁿφα  Φφ⌠ε≡∞α÷Φ  ∩σ≡σΣασ≥±  Γ∞σ±≥σ ± ßαΘ≥-ΩεΣα∞Φ Σδ  ∩≡εΓσ≡ΩΦ Φ Φφ≥σ≡∩≡σ≥α÷ΦΦ. ╬Ωεφ≈α≥σδⁿφεσ ±Γ τ√ΓαφΦσ Φ∞σφ ∩≡εΦτΓεΣΦ≥±  Φφ≥σ≡∩≡σ≥α≥ε≡ε∞ Γ ∞ε∞σφ≥ ταπ≡≤τΩΦ Ωδα±±α. ╧ε±δσ ²≥επε ±±√δΩΦ ≤µσ "∩≡ε∩Φ±αφ√", ΩαΩ φσ∩ε±≡σΣ±≥Γσφφ√σ ≤Ωατα≥σδΦ, Φ Φφ≥σ≡∩≡σ≥α≥ε≡ ∞εµσ≥ ≡αßε≥α≥ⁿ ± φε≡∞αδⁿφεΘ ±Ωε≡ε±≥ⁿ■.
┬ε Γ≥ε≡√⌡ ≥ε, ΩαΩ εß·σΩ≥ Σεδµσφ Γ√πδ Σσ≥ⁿ Γ ∩α∞ ≥Φ ∞α°Φφ√, ε∩≡σΣσδ σ≥±  φσ Ωε∞∩Φδ ≥ε≡ε∞, α ±α∞Φ∞ Φφ≥σ≡∩≡σ≥α≥ε≡ε∞. ─εßαΓδσφΦσ Γ Ωδα±± φεΓ√⌡ ∩σ≡σ∞σφφ√⌡ ΦδΦ ∞σ≥εΣεΓ φσ ≥≡σß≤σ≥ Φτ∞σφσφΦΘ Γ ε±≥αδⁿφ√⌡ ΩεΣα⌡.
╧εφ ≥Φσ Φφ≥σ≡⌠σΘ±α Γ  τ√Ωσ Java
╧εΣ Φφ≥σ≡⌠σΘ±ε∞ (interface) Γ Java ∩εφΦ∞ασ≥±  ±∩σ÷Φ⌠ΦΩα÷Φ  Σε∩εδφΦ≥σδⁿφεπε φαßε≡α ∞σ≥εΣεΓ, Ωε≥ε≡√σ "εß ταφ τφα≥ⁿ" εß·σΩ≥. ╚Σσ  ταΦ∞±≥ΓεΓαφα Φτ  τ√Ωα Objective C, πΣσ ≥αΩα  ±∩σ÷Φ⌠ΦΩα÷Φ  φατ√Γασ≥±  ∩≡ε≥εΩεδε∞ (protocol). ╚φ≥σ≡⌠σΘ± φσ ΓΩδ■≈ασ≥ Γ ±σß  ∞εΣΦ⌠Φ÷Φ≡≤σ∞√⌡ ∩σ≡σ∞σφφ√⌡ ΦδΦ Γ√∩εδφ σ∞√⌡ ΩεΣεΓ. ╩δα±± ∞εµσ≥ ≡σαδΦτεΓα≥ⁿ δ■ßεσ ΩεδΦ≈σ±≥Γε Φφ≥σ≡⌠σΘ±εΓ, ßστ Γ±σ⌡ ≥≡≤Σφε±≥σΘ ε≡παφΦτα÷ΦΦ Φσ≡α≡⌡ΦΦ Ωδα±±εΓ ∩≡Φ ∞φεµσ±≥Γσφφε∞ φα±δσΣεΓαφΦΦ Γ ╤++.
╧≡σΣ±≥αΓδσφΦσ Γ Φ±∩εδφ σ∞ε∞ ∞εΣ≤δσ
╩δα±±√ Γ Java ≡σαδⁿφε ∩≡σΣ±≥αΓδσφ√ Γ ≡αßε≥α■∙σΘ ±Φ±≥σ∞σ. ╤≤∙σ±≥Γ≤σ≥ Γ√Σσδσφφ√Θ Ωδα±± ∩ε Φ∞σφΦ Class, ²Ωτσ∞∩δ ≡√ Ωε≥ε≡επε ±ετΣα■≥±  ΓΦ≡≥≤αδⁿφεΘ ∞α°ΦφεΘ Φ ±εΣσ≡µα≥ Φφ⌠ε≡∞α÷Φ■ ε Γ±σ⌡ Ωδα±±α⌡ Γ ±Φ±≥σ∞σ. ─δ  δ■ßεπε εß·σΩ≥α Γετ∞εµφε φαΘ≥Φ ±εε≥Γσ≥±≥Γ≤■∙ΦΘ σ∞≤ εß·σΩ≥, ∩≡σΣ±≥αΓδ ■∙ΦΘ σπε Ωδα±±. ╩δα±± ∞εµσ≥ ±εεß∙Φ≥ⁿ ±Γεσ Φ∞  Φ ±±√δΩ≤ φα ±Γεσπε φσ∩ε±≡σΣ±≥Γσφφεπε ∩≡σΣ°σ±≥ΓσφφΦΩα Γ Φσ≡α≡⌡ΦΦ. ┬ετ∞εµσφ ≥αΩµσ ∩εΦ±Ω Ωδα±±εΓ ∩ε Φ∞σφΦ.

╚≥επΦ

╚φ≥σ≡∩≡σ≥Φ≡≤σ∞α  Φ ΣΦφα∞Φ≈σ±Ωα  ∩≡Φ≡εΣα  τ√Ωα Java ∩≡σΣε±≥αΓδ σ≥ ≡ατ≡αßε≥≈ΦΩ≤ ε∩≡σΣσδσφφ√σ ∩≡σΦ∞≤∙σ±≥Γα:

┴στε∩α±φε±≥ⁿ Γ Java

╧ε ∞σ≡σ ±≥≡σ∞Φ≥σδⁿφεπε ≡ε±≥α Φ±∩εδⁿτεΓαφΦ  πδεßαδⁿφ√⌡ ±σ≥σΘ Γ ±∩σΩ≥≡σ ≤±δ≤π, ∩≡ε±≥Φ≡α■∙σ∞±  ε≥ ²δσΩ≥≡εφφεπε ≡α±∩≡ε±≥≡αφσφΦ  ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ  Φ εß·σΩ≥εΓ multimedia Σε ²δσΩ≥≡εφφ√⌡ ∩δα≥σµσΘ, ßστε∩α±φε±≥ⁿ ±≥αφεΓΦ≥±  Ωδ■≈σΓεΘ ∩≡εßδσ∞εΘ. ╠√ Ωε±φσ∞±  ≥επε, ΩαΩ Ωε∞∩Φδ ≥ε≡ Java Φ run-time ∩≡σΣε≥Γ≡α∙α■≥ ±ετΣαφΦσ Φ ∩≡εφΦΩφεΓσφΦσ "ΣΦΓσ≡±Φεφφ√⌡" ΩεΣεΓ.
╩ε∞∩Φδ ≥ε≡ Φ run-time ΓΩδ■≈α■≥ Γ ±σß  φσ±ΩεδⁿΩε ≤≡εΓφσΘ εßε≡εφ√ ∩≡ε≥ΦΓ ∩ε≥σφ÷Φαδⁿφε ε∩α±φ√⌡ ∩≡επ≡α∞∞. ┬ εß∙σ∞ ±δ≤≈ασ ±Φ±≥σ∞α Φ±⌡εΣΦ≥ Φτ ∩≡σΣ∩εδεµσφΦ , ≈≥ε ΣεΓσ≡ ≥ⁿ φσδⁿτ  φΦΩε∞≤. ╤δσΣ≤■∙Φσ φσ±ΩεδⁿΩε ±σΩ÷ΦΘ Ωα±α■≥±  ∩≡εßδσ∞√ ßεδσσ Σσ≥αδⁿφε.

╨στσ≡ΓΦ≡εΓαφΦσ Φ ≡α±∩≡σΣσδσφΦσ ∩α∞ ≥Φ

┬ε-∩σ≡Γ√⌡, ≡σ°σφΦσ ε ≡α±∩≡σΣσδσφΦΦ ∩α∞ ≥Φ ∩≡ΦφΦ∞ασ≥ φσ Ωε∞∩Φδ ≥ε≡, α run-time ±Φ±≥σ∞α. ╬φε ∞εµσ≥ ταΓΦ±σ≥ⁿ ε≥ ε±εßσφφε±≥σΘ α≡⌡Φ≥σΩ≥≤≡√ ΩεφΩ≡σ≥φεΘ ±Φ±≥σ∞√.
┬ε-Γ≥ε≡√⌡,  τ√Ω φσ ∩εΣΣσ≡µΦΓασ≥ ≤Ωατα≥σδσΘ. ╤Φ∞ΓεδΦ≈σ±ΩΦσ ±±√δΩΦ φα εß·σΩ≥√ ≡ατ≡σ°α■≥±  Φφ≥σ≡∩≡σ≥α≥ε≡ε∞ φα ²≥α∩σ Γ√∩εδφσφΦ . ┬√ΣσδσφΦσ ∩α∞ ≥Φ Φ ≡αßε≥α ±ε ±±√δΩα∞Φ φα⌡εΣ ≥±  ∩εδφε±≥ⁿ■ ∩εΣ ≤∩≡αΓδσφΦσ∞ ±Φ±≥σ∞√ Φ φσ Σε±≥≤∩φ√ φσ∩ε±≡σΣ±≥Γσφφε Φτ ∩≡επ≡α∞∞√.
╬≥δεµσφφεσ Σε ∩ε±δσΣφσπε ∞ε∞σφ≥α ≡ατ∞σ∙σφΦσ ±≥≡≤Ω≥≤≡ Γ ∩α∞ ≥Φ φσ ∩ετΓεδ σ≥ ε∩≡σΣσδΦ≥ⁿ ≡σαδⁿφεσ ∩εδεµσφΦσ ∩εδσΘ Ωδα±±α ∩ε σπε ε∩Φ±αφΦ■.

╧≡ε÷σ±± ∩≡εΓσ≡ΩΦ ßαΘ≥-ΩεΣεΓ

═σ±∞ε≥≡  φα ≥ε, ≈≥ε Ωε∞∩Φδ ≥ε≡ πα≡αφ≥Φ≡≤σ≥, ≈≥ε ΩεΣ√ φσ φα≡≤°α■≥ ≥≡σßεΓαφΦΘ ßστε∩α±φε±≥Φ, σ±δΦ εφΦ ß√δΦ ∩εδ≤≈σφ√ Φτ Σ≡≤πΦ⌡ ≥ε≈σΩ ±σ≥Φ ΓετφΦΩασ≥ ±δσΣ≤■∙α  ∩≡εßδσ∞α: ΩεΣ√ ∞επ≤≥ ß√≥ⁿ ±ετΣαφ√ φσ Ωε∞∩Φδ ≥ε≡ε∞ Java, α Σ≡≤πΦ∞Φ ±≡σΣ±≥Γα∞Φ. ╚δΦ εφΦ ∞επ≤≥ ß√≥ⁿ φα∞σ≡σφφε ∞εΣΦ⌠Φ÷Φ≡εΓαφ√ ∩ε±δσ ±ετΣαφΦ . ╧ε²≥ε∞≤ run-time ±Φ±≥σ∞α ∩εΣΓσ≡πασ≥ ∩εδ≤≈σφφ√σ ΩεΣ√ ≥∙α≥σδⁿφεΘ ∩≡εΓσ≡Ωσ.
╧≡εΓσ≡Ωα ΓΩδ■≈ασ≥ Γ ±σß  φσ±ΩεδⁿΩε ²≥α∩εΓ, φα≈Φφα  ± Ωεφ≥≡εδ  ÷σδε±≥φε±≥Φ ⌠ε≡∞α≥α ∩εδ≤≈σφφεπε ⌠αΘδα Σε αφαδΦτα ΩαµΣεπε ⌠≡απ∞σφ≥α ΩεΣεΓ φα ∩≡σΣ∞σ≥ Γ√∩εδφσφΦ  ±δσΣ≤■∙Φ⌡ ∩≡αΓΦδ:

┬σ≡Φ⌠ΦΩα≥ε≡ ßαΘ≥-ΩεΣεΓ
┬σ≡Φ⌠ΦΩα≥ε≡ ßαΘ≥-ΩεΣεΓ (bytecode verifier) ±ΩαφΦ≡≤σ≥ ßαΘ≥-ΩεΣ√, ΦτΓδσΩασ≥ Φφ⌠ε≡∞α÷Φ■ ε ≥Φ∩α⌡ εß·σΩ≥εΓ Γ ΩαµΣεΘ ≥ε≈Ωσ Γ√∩εδφσφΦ  ⌠≡απ∞σφ≥α ΩεΣα.
═α ∩≡ΦΓσΣσφφε∞ ≡Φ±≤φΩσ Φτεß≡αµσφ ∩≤≥ⁿ ε≥ Φ±⌡εΣφ√⌡ ≥σΩ±≥εΓ φα  τ√Ωσ Java ≈σ≡στ Ωε∞∩Φδ ≥ε≡ Java, Γσ≡Φ⌠ΦΩα≥ε≡ ΩεΣεΓ Σε Φφ≥σ≡∩≡σ≥α≥ε≡α. ┬αµφε ε≥∞σ≥Φ≥ⁿ, ≈≥ε ταπ≡≤τ≈ΦΩ Φ Γσ≡Φ⌠ΦΩα≥ε≡ ßαΘ≥-ΩεΣεΓ φσ Σσδα■≥ φΦΩαΩΦ⌡ ∩≡σΣ∩εδεµσφΦΘ ε≥φε±Φ≥σδⁿφε ∩≡εΦ±⌡εµΣσφΦ  ΩεΣεΓ -- ∩εδ≤≈σφ√ εφΦ ± δεΩαδⁿφεΘ ⌠αΘδεΓεΘ ±Φ±≥σ∞√ ΦδΦ ± Σ≡≤πεπε Ωεφ≥Φφσφ≥α. ┬σ≡Φ⌠ΦΩα≥ε≡ πα≡αφ≥Φ≡≤σ≥, ≈≥ε δ■ßεΘ ΩεΣ, ∩≡ε°σΣ°ΦΘ ∩≡εΓσ≡Ω≤, ∞εµσ≥ ß√≥ⁿ Φ±∩εδⁿτεΓαφ Φφ≥σ≡∩≡σ≥α≥ε≡ε∞ ßστ ≡Φ±Ωα ∩εΓ≡σΣΦ≥ⁿ σπε (Φφ≥σ≡∩≡σ≥α≥ε≡), α Φ∞σφφε:

╧≡αΓΦδα ßστε∩α±φε±≥Φ ∩≡Φ ταπ≡≤τΩσ

┬ ⌡εΣσ Γ√∩εδφσφΦ  ∩≡επ≡α∞∞√ ∞εµσ≥ ∩ε≥≡σßεΓα≥ⁿ±  ταπ≡≤τΩα Σε∩εδφΦ≥σδⁿφ√⌡ Ωδα±±εΓ. ╧ε±δσ ≥επε ΩαΩ, ∩εδ≤≈σφφ√Θ ΩεΣ ∩≡ε°σδ ∩≡εΓσ≡Ω≤ φα ΓαδΦΣφε±≥ⁿ ßαΘ≥-ΩεΣεΓ, εφ ∩ε±≥≤∩ασ≥ Γ ταπ≡≤τ≈ΦΩ ΩεΣεΓ. ─δ  ταπ≡≤τ≈ΦΩα Γ±σ ∩≡ε±≥≡αφ±≥Γε Φ∞σφ ταπ≡≤µασ∞√⌡ Ωδα±±εΓ ∞εµσ≥ ß√≥ⁿ ∩εΣ≡ατΣσδσφε φα ε≥Σσδⁿφ√σ εßδα±≥Φ (name spaces). ╧≡Φ≈σ∞ Ωδα±±√, ∩εδ≤≈σφφ√σ δεΩαδⁿφε (τα±δ≤µΦΓα■∙Φσ ßστ≤±δεΓφεπε ΣεΓσ≡Φ ), Φ Ωδα±±√, ∩≡Φ±δαφφ√σ ∩ε ±σ≥Φ Φτ ε±≥αδⁿφεπε ∞Φ≡α (Φ ∩ε≥σφ÷Φαδⁿφε Γ≡αµΣσßφ√σ), φα⌡εΣ ≥±  Γ ≡ατφ√⌡ ∩≡ε±≥≡αφ±≥Γα⌡ Φ∞σφ.
╧≡Φ ≡ατ≡σ°σφΦΦ ±±√δΩΦ φα ΩαΩεΘ-δΦßε Ωδα±± εφ Φ∙σ≥±  ∩≡σµΣσ Γ±σπε Γ δεΩαδⁿφε∞ ∩≡ε±≥≡αφ±≥Γσ. ▌≥ε φσ ∩ετΓεδ σ≥ "Γφσ°φΦ∞" ΩεΣα∞ ∩εΣ∞σφΦ≥ⁿ εΣΦφ Φτ ßατεΓ√⌡ Ωδα±±εΓ Γ ±Φ±≥σ∞σ.

┴στε∩α±φε±≥ⁿ Γ ±σ≥σΓε∞ ∩αΩσ≥σ

╤σ≥σΓεΘ ∩αΩσ≥ Java ΓΩδ■≈ασ≥ Γ ±σß  ∩εΣΣσ≡µΩ≤ ≡ατδΦ≈φ√⌡ ±σ≥σΓ√⌡ ∩≡ε≥εΩεδεΓ (FTP, HTTP, Telnet Φ ≥.Σ.). ▌≥ε -- ∩σ≡σΣεΓα  δΦφΦ  τα∙Φ≥√ ε≥ Γ≥ε≡µσφΦ  ∩ε ±σ≥Φ.
╬±≥ε≡εµφε±≥ⁿ ∩≡Φ ≤±≥αφεΓΩσ ∩≡αΓ ±σ≥σΓεπε Σε±≥≤∩α Γ δεΩαδⁿφ≤■ ±Φ±≥σ∞≤ ∞εµσ≥ ß√≥ⁿ ΣεΓσΣσφα Σε ∩α≡αφεΦΣαδⁿφεΘ. ┬√ ∞εµσ≥σ

╚≥επΦ

╤Φ±≥σ∞α Java Σε±≥α≥ε≈φε ßστε∩α±φα, ≈≥εß√ µΦ≥ⁿ Γ ±σ≥σΓε∞ εΩ≡≤µσφΦΦ. ═σΘ≥≡αδⁿφε±≥ⁿ Ω α≡⌡Φ≥σΩ≥≤≡σ Φ ∩σ≡σφε±Φ∞ε±≥ⁿ Σσδα■≥ σσ Σε±≥α≥ε≈φε ∩≡ΦΓδσΩα≥σδⁿφεΘ Σδ  ±ετΣαφΦ  ≡α±∩≡σΣσδσφφ√⌡ ∩ε ±σ≥Φ ∩≡ΦδεµσφΦΘ.

╠φεπε∩ε≥εΩεΓε±≥ⁿ Γ Java

╤εΓ≡σ∞σφφεπε ∩εδⁿτεΓα≥σδ  Ωε∞∩ⁿ■≥σ≡α Γ±σ ≈α∙σ ≡ατΣ≡αµασ≥ ±Φ≥≤α÷Φ , ΩεπΣα ∩≡επ≡α∞∞α ±∩ε±εßφα Γ√∩εδφ ≥ⁿ Γ εΣΦφ ∞ε∞σφ≥ Γ≡σ∞σφΦ δΦ°ⁿ εΣφ≤ ταΣα≈≤. ╨σαδⁿφ√Θ ∞Φ≡ φα∩εδφσφ ±εß√≥Φ ∞Φ, ∩≡εΦ±⌡εΣ ∙Φ∞Φ εΣφεΓ≡σ∞σφφε Φ φσταΓΦ±Φ∞ε. ╧εδⁿτεΓα≥σδⁿ ≥≡σß≤σ≥ ε≥ Ωε∞∩ⁿ■≥σ≡α αΣσΩΓα≥φεΘ ≡σαΩ÷ΦΦ.
╩ ±εµαδσφΦ■, φα∩Φ±αφΦσ ∩≡επ≡α∞∞, ε≥Γσ≈α■∙Φ⌡ ²≥Φ∞ ≥≡σßεΓαφΦ ∞, τφα≈Φ≥σδⁿφε ±δεµφσσ, ≈σ∞ φα∩Φ±αφΦσ ∩≡επ≡α∞∞, Γ√∩εδφ ■∙Φ⌡±  ∩ε±δσΣεΓα≥σδⁿφε. ╬φΦ ∞επ≤≥ ß√≥ⁿ ±ετΣαφ√ ± Φ±∩εδⁿτεΓαφΦσ∞ ╤ ΦδΦ ╤++, εΣφαΩε Σσδα≥ⁿ ²≥ε ±δεµφσσ, ≥.Ω. ε≥±≤≥±≥Γ≤σ≥ ∩εΣΣσ≡µΩα Γ ±α∞ε∞  τ√Ωσ, α ≥αΩµσ ßεδⁿ°Φφ±≥Γε ±≤∙σ±≥Γ≤■∙Φ⌡ φα ±σπεΣφ °φΦΘ Σσφⁿ Γφσ°φΦ⌡ ßΦßδΦε≥σΩ ≈α±≥ε φσ ∞επ≤≥ ß√≥ⁿ Φ±∩εδⁿτεΓαφ√ Γ ≥αΩΦ⌡ ∩≡επ≡α∞∞α⌡ Γ ±Φδ≤ ≥επε, ≈≥ε εφΦ φσ ≤ΣεΓδσ≥Γε≡ ■≥ ≥αΩ φατ√Γασ∞ε∞≤ thread-safe ≤±δεΓΦ■.
╥σ≡∞Φφ thread-safe ετφα≈ασ≥, ≈≥ε ΩαµΣα  ⌠≤φΩ÷Φ  ΣαφφεΘ ßΦßδΦε≥σΩΦ ∞εµσ≥ ß√≥ⁿ Φ±∩εδⁿτεΓαφα εΣφεΓ≡σ∞σφφε φσ±ΩεδⁿΩΦ∞Φ ∩ε≥εΩα∞Φ.
╬±φεΓφα  ∩≡εßδσ∞α ∩≡Φ ∩≡ ∞ε∞ ≤∩≡αΓδσφΦΦ ∩ε≥εΩα∞Φ ±ε±≥εΦ≥ Γ ≥ε∞, ≈≥ε ┬√ φΦΩεπΣα φσ ∞εµσ≥σ ß√≥ⁿ ∩εδφε±≥ⁿ■ ≤Γσ≡σφ√, ≈≥ε ∩ε±≥αΓΦδΦ Γ±σ φ≤µφ√σ τα∞ΩΦ (locks) Φ ΓεΓ≡σ∞  Φ⌡ ε±ΓεßεΣΦδΦ. ╧≡Φ ∩≡σµΣσΓ≡σ∞σφφε∞ ταΓσ≡°σφΦΦ ∩≡ε÷σΣ≤≡√ ΦδΦ ∩≡Φ ΓετφΦΩφεΓσφΦΦ Φ±Ωδ■≈Φ≥σδⁿφεΘ ±Φ≥≤α÷ΦΦ τα∞εΩ ∞εµσ≥ ε±≥α≥ⁿ±  φσ±φ ≥√∞, ≈≥ε εß√≈φε ∩≡ΦΓεΣΦ≥ Ω ßδεΩΦ≡εΓΩσ ∩≡επ≡α∞∞√ (deadlock).
┬±≥≡εσφφα  ∞φεπε∩ε≥εΩεΓε±≥ⁿ -- ±≤∙σ±≥Γσφφα  ≈σ≡≥α α≡⌡Φ≥σΩ≥≤≡√ Java. ╤≥αφΣα≡≥φα  ßΦßδΦε≥σΩα ΓΩδ■≈ασ≥ Γ ±σß  Ωδα±± Thread, ± ∞σ≥εΣα∞Φ, ∩ετΓεδ ■∙Φ∞Φ ±≥α≡≥εΓα≥ⁿ φεΓ√Θ ∩ε≥εΩ, ταΓσ≡°Φ≥ⁿ σπε ≡αßε≥≤ Φ ∩≡εΓσ≡Φ≥ⁿ ≥σΩ≤∙σσ ±ε±≥ε φΦσ ∩ε≥εΩα.
╚φ≥σπ≡α÷Φ  ∩≡Φ∞Φ≥ΦΓεΓ ±Φφ⌡≡εφΦτα÷ΦΦ φσ∩ε±≡σΣ±≥Γσφφε Γ  τ√Ω ≤∩≡ε∙ασ≥ ≡αßε≥≤ ± φΦ∞Φ.
╧ε≥εΩΦ Γ Java Γ√≥σ±φ ■∙Φσ (pre-emptive), α ≥αΩµσ ∞επ≤≥ Γ√∩εδφ ≥ⁿ±  Γ ≡σµΦ∞σ ≡ατΣσδσφΦ  Γ≡σ∞σφΦ (time-sliced), φε ≥εδⁿΩε φα ∩δα≥⌠ε≡∞α⌡, Ωε≥ε≡√σ ∩εΣΣσ≡µΦΓα■≥ ²≥ε. ┬ ±Φ±≥σ∞α⌡, Γ Ωε≥ε≡√⌡ ≥αΩα  ∩εΣΣσ≡µΩα ε≥±≤≥±≥Γ≤σ≥, ∩ε±δσ ≥επε, ΩαΩ ∩ε≥εΩ ß√δ τα∩≤∙σφ, εφ ∞εµσ≥ ß√≥ⁿ ∩≡σ≡Γαφ ≥εδⁿΩε Σ≡≤πΦ∞ ∩ε≥εΩε∞ ± ßεδσσ Γ√±εΩΦ∞ ∩≡Φε≡Φ≥σ≥ε∞. ┼±δΦ Γα°σ ∩≡ΦδεµσφΦσ ≥≡σß≤σ≥ ßεδⁿ°Φ⌡ ∩σ≡ΦεΣεΓ Γ√≈Φ±δσφΦΘ, ≡σΩε∞σφΣ≤σ≥±   Γφε ε≥ΣαΓα≥ⁿ ≤∩≡αΓδσφΦσ Σ≡≤πΦ∞ ∩ε≥εΩα∞ (Γ√τεΓε∞ Thread.yield()).

╚φ≥σπ≡Φ≡εΓαφφα  ±Φφ⌡≡εφΦτα÷Φ  ∩ε≥εΩεΓ

╤Φ±≥σ∞α Java ±εΣσ≡µΦ≥ ∩εΣΣσ≡µΩ≤ ∞φεπε∩ε≥εΩεΓε±≥Φ ΩαΩ φα ≤≡εΓφσ ±Φφ≥αΩ±Φ±α  τ√Ωα, ≥αΩ Φ φα ≤≡εΓφσ ßΦßδΦε≥σΩ Φ ±Φ±≥σ∞φ√⌡ Γ√τεΓεΓ.
═α ≤≡εΓφσ ±α∞επε  τ√Ωα ∞σ≥εΣ√, εß· Γδσφφ√σ ± ∩≡ΦτφαΩε∞ synchronized, πα≡αφ≥Φ≡εΓαφε φσ ß≤Σ≤≥ Γ√∩εδφ ≥ⁿ±  εΣφεΓ≡σ∞σφφε Σδ  Σαφφεπε εß·σΩ≥α. ╠σ≥εΣ√ τα∩≤±Ωα■≥±  ∩εΣ ≤∩≡αΓδσφΦσ∞ ∞εφΦ≥ε≡α (monitor). ╩αµΣ√Θ Ωδα±± Φ εß·σΩ≥ Φ∞σ■≥ ±ΓεΘ ±εß±≥Γσφφ√Θ ∞εφΦ≥ε≡. ┼±δΦ εß·σΩ≥ φα⌡εΣΦ≥±  Γ ±ε±≥ε φΦΦ Γ√∩εδφσφΦ  εΣφεπε Φτ ±Φφ⌡≡εφΦτεΓαφφ√⌡ ∞σ≥εΣεΓ, ∩ε∩√≥Ωα Γ√τΓα≥ⁿ ²≥ε≥ ∞σ≥εΣ ΦδΦ δ■ßεΘ Σ≡≤πεΘ ±Φφ⌡≡εφΦτεΓαφφ√Θ ∞σ≥εΣ Σδ  ²≥επε µσ εß·σΩ≥α Φτ Σ≡≤πεπε ∩ε≥εΩα ∩≡Φε±≥αφαΓδΦΓασ≥±  Σε ≥επε ∞ε∞σφ≥α, ΩεπΣα Γ√∩εδφσφΦσ ∞σ≥εΣα ΩαΩΦ∞-≥ε εß≡ατε∞ ταΓσ≡°Φ≥±  (εß√≈φ√∞ εß≡ατε∞ ΦδΦ Γ ≡στ≤δⁿ≥α≥σ Γετß≤µΣσφΦ  Φ±Ωδ■≈Φ≥σδⁿφεΘ ±Φ≥≤α÷ΦΦ).

[═αταΣ] [╤εΣσ≡µαφΦσ] [┬∩σ≡σΣ]