CodeGym /ื‘ืœื•ื’ Java /Random-HE /ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java. ื—ืœืง 1
John Squirrels
ืจึธืžึธื”
San Francisco

ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java. ื—ืœืง 1

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

ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืœืชืคืงื™ื“ ืžืคืชื— ื–ื•ื˜ืจ

ืฉืืœื•ืช ื›ืœืœื™ื•ืช

1. ืื™ืœื• ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ืืชื ืžื›ื™ืจื™ื? ืกืคืจ ืœื ื• ืขืœ ืฉื ื™ ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ืฉื‘ื”ื ื”ืฉืชืžืฉืช ื‘ืขื‘ื•ื“ืชืš.

ื™ืฉ ืžื’ื•ื•ืŸ ืขืฆื•ื ืฉืœ ื“ืคื•ืกื™ื. ืœืืœื• ืžื›ื ืฉืจื•ืฆื™ื ืœื”ื›ื™ืจ ืœืขื•ืžืง ืืช ื“ืคื•ืกื™ ื”ืขื™ืฆื•ื‘, ืื ื™ ืžืžืœื™ืฅ ืœืงืจื•ื ืืช ื”ืกืคืจ "ื”ืจืืฉ ืชื—ื™ืœื”. ื“ืคื•ืกื™ ืขื™ืฆื•ื‘". ื–ื” ื™ืขื–ื•ืจ ืœืš ืœืœืžื•ื“ ื‘ืงืœื•ืช ืืช ื”ืคืจื˜ื™ื ืฉืœ ื“ืคื•ืกื™ ื”ืขื™ืฆื•ื‘ ื”ื‘ืกื™ืกื™ื™ื ื‘ื™ื•ืชืจ. ื‘ืžื•ื ื—ื™ื ืฉืœ ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ืฉืชื•ื›ืœื• ืœื”ื–ื›ื™ืจ ื‘ืจืื™ื•ืŸ ืขื‘ื•ื“ื”, ืขื•ืœื™ื ื‘ืจืืฉื›ื ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:
  • Builder - ืชื‘ื ื™ืช ื‘ืฉื™ืžื•ืฉ ืชื›ื•ืฃ, ื—ืœื•ืคื” ืœื’ื™ืฉื” ื”ืงืœืืกื™ืช ืœื™ืฆื™ืจืช ืื•ื‘ื™ื™ืงื˜ื™ื;
  • ืืกื˜ืจื˜ื’ื™ื” - ื“ืคื•ืก ื”ืžื™ื™ืฆื’ ื‘ืขืฆื ืคื•ืœื™ืžื•ืจืคื™ื–ื. ื›ืœื•ืžืจ, ื™ืฉ ืœื ื• ืžืžืฉืง ืื—ื“, ืื‘ืœ ื”ื”ืชื ื”ื’ื•ืช ืฉืœ ื”ืชื•ื›ื ื™ืช ืžืฉืชื ื” ื‘ื”ืชืื ืœืžื™ืžื•ืฉ ื”ืžืžืฉืง ื”ืกืคืฆื™ืคื™ ืฉื”ื•ืขื‘ืจ ืœืคื•ื ืงืฆื™ื” (ื“ืคื•ืก ื”ืืกื˜ืจื˜ื’ื™ื” ืžืฉืžืฉ ื›ื™ื•ื ื›ืžืขื˜ ื‘ื›ืœ ืžืงื•ื ื‘ื™ื™ืฉื•ืžื™ Java).
ืื ื–ื” ืœื ืžืกืคื™ืง ืœื›ื, ืฉื™ืžื• ืœื‘ ืœ- Spring (ืื ืืชื ื›ื‘ืจ ืžื›ื™ืจื™ื ืื•ืชื•), ื›ื™ ื”ื•ื ืคืœื˜ืคื•ืจืžื” ืฉืœืžื” ืฉืœ ืžืกื’ืจื•ืช, ืฉื‘ืชื•ืจืŸ ื—ื“ื•ืจื•ืช ื‘ื“ืคื•ืกื™ื ืžื”ื”ืชื—ืœื” ื•ืขื“ ื”ืกื•ืฃ. ื”ื ื” ื›ืžื” ื“ื•ื’ืžืื•ืช ืœืžื” ืฉืื ื™ ืžื“ื‘ืจ:
  • Factory - ื ื™ืชืŸ ืœืžืฆื•ื ื“ืคื•ืก ื–ื” ื‘- ApplicationContext (ืื• ื‘-BeanFactory);
  • Singleton - ื›ืœ ื”ืฉืขื•ืขื™ืช ื”ื™ื ื™ื—ื™ื“ื” ื›ื‘ืจื™ืจืช ืžื—ื“ืœ;
  • ืคืจื•ืงืกื™ - ื‘ืขืฆื, ื›ืœ ื“ื‘ืจ ื‘-Spring ืžืฉืชืžืฉ ื‘ื“ืคื•ืก ื–ื” ื‘ืฆื•ืจื” ื›ื–ื• ืื• ืื—ืจืช, ืœืžืฉืœ, AOP;
  • ืฉืจืฉืจืช ืื—ืจื™ื•ืช - ื“ืคื•ืก ื”ืขื•ืžื“ ื‘ื‘ืกื™ืก Spring Security;
  • ืชื‘ื ื™ืช - ื‘ืฉื™ืžื•ืฉ ื‘- Spring JDBC.

Java Core

ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java.  ื—ืœืง 1 - 2

2. ืื™ืœื• ืกื•ื’ื™ ื ืชื•ื ื™ื ืงื™ื™ืžื™ื ื‘-Java?

ืœ- Java ื™ืฉ ืืช ืกื•ื’ื™ ื”ื ืชื•ื ื™ื ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ื”ื‘ืื™ื:
  • ื‘ืชื™ื - ืžืกืคืจื™ื ืฉืœืžื™ื ื”ื ืขื™ื ื‘ื™ืŸ -128 ืœ-127, ืชื•ืคืก ื‘ื™ืช ืื—ื“;
  • ืงืฆืจ - ืžืกืคืจื™ื ืฉืœืžื™ื ื”ื ืขื™ื ื‘ื™ืŸ -32768 ืœ-32767, ืชื•ืคืก 2 ื‘ืชื™ื;
  • int - ืžืกืคืจื™ื ืฉืœืžื™ื ื”ื ืขื™ื ื‘ื™ืŸ -2147483648 ืœ-2147483647, ืชื•ืคืก 4 ื‘ืชื™ื;
  • ืืจื•ืš - ืžืกืคืจื™ื ืฉืœืžื™ื ื”ื ืขื™ื ื‘ื™ืŸ 9223372036854775808 ืœ-9223372036854775807, ืชื•ืคืก 8 ื‘ืชื™ื;
  • float โ€” ืžืกืคืจื™ ื ืงื•ื“ื” ืฆืคื” ื”ื ืขื™ื ื‘ื™ืŸ -3.4E+38 ืœ-3.4E+38, ืชื•ืคืกืช 4 ื‘ืชื™ื;
  • ื›ืคื•ืœ - ืžืกืคืจื™ ื ืงื•ื“ื” ืฆืคื” ื”ื ืขื™ื ื‘ื™ืŸ -1.7E+308 ืœ-1.7E+308, ืชื•ืคืกื™ื 8 ื‘ืชื™ื;
  • char - ืชื•ื•ื™ื ื‘ื•ื“ื“ื™ื ื‘-UTF-16, ืชื•ืคืก 2 ื‘ืชื™ื;
  • ืขืจื›ื™ ืืžืช/ืฉืงืจ ื‘ื•ืœื™ืื ื™ , ืชื•ืคืก 1 ื‘ื™ื™ื˜.
ื•ื™ืฉ ืกื•ื’ื™ ื ืชื•ื ื™ ื”ืชื™ื™ื—ืกื•ืช ื”ืžืฆื‘ื™ืขื™ื ืขืœ ืื•ื‘ื™ื™ืงื˜ื™ื ืขืœ ื”ืขืจื™ืžื”.

3. ื‘ืžื” ืฉื•ื ื” ืื•ื‘ื™ื™ืงื˜ ืžืกื•ื’ื™ ื ืชื•ื ื™ื ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื?

ื”ื”ื‘ื“ืœ ื”ืจืืฉื•ืŸ ื”ื•ื ื›ืžื•ืช ื”ื–ื™ื›ืจื•ืŸ ื”ืชืคื•ืกื”: ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ืชื•ืคืกื™ื ืžืขื˜ ืžืื•ื“ ืžื›ื™ื•ื•ืŸ ืฉื”ื ืžื›ื™ืœื™ื ืจืง ืืช ื”ืขืจืš ืฉืœื”ื, ืื‘ืœ ืื•ื‘ื™ื™ืงื˜ื™ื ื™ื›ื•ืœื™ื ืœื”ื›ื™ืœ ื”ืžื•ืŸ ืขืจื›ื™ื ืฉื•ื ื™ื - ื’ื ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ื•ื’ื ื”ืคื ื™ื•ืช ืœืื•ื‘ื™ื™ืงื˜ื™ื ืื—ืจื™ื. ื”ื‘ื“ืœ ืฉื ื™ ื”ื•ื ื–ื”: ื’'ืื•ื•ื” ื”ื™ื ืฉืคื” ืžื•ื ื—ื” ืขืฆืžื™ื, ื›ืš ืฉื›ืœ ื“ื‘ืจ ื‘-Java ืขื•ื‘ื“ ื”ื•ื ืื™ื ื˜ืจืืงืฆื™ื” ื‘ื™ืŸ ืื•ื‘ื™ื™ืงื˜ื™ื. ืคืจื™ืžื™ื˜ื™ื‘ื™ื ืœื ืžืฉืชืœื‘ื™ื ื›ืืŸ ื›ืœ ื›ืš. ืœืžืขืฉื”, ื–ื• ื”ืกื™ื‘ื” ืฉ-Java ืื™ื ื” ืฉืคื” 100% ืžื•ื ื—ื” ืขืฆืžื™ื. ื”ื”ื‘ื“ืœ ื”ืฉืœื™ืฉื™, ื”ื ื•ื‘ืข ืžื”ืฉื ื™ ื”ื•ื ืฉืžื›ื™ื•ื•ืŸ ืฉ-Java ืžืชืžืงื“ืช ื‘ืื™ื ื˜ืจืืงืฆื™ื•ืช ื‘ื™ืŸ ืื•ื‘ื™ื™ืงื˜ื™ื, ื™ืฉื ื ืžื ื’ื ื•ื ื™ื ืจื‘ื™ื ื•ืฉื•ื ื™ื ืœื ื™ื”ื•ืœ ืื•ื‘ื™ื™ืงื˜ื™ื. ืœื“ื•ื’ืžื”, ื‘ื ืื™ื, ืฉื™ื˜ื•ืช, ื—ืจื™ื’ื™ื (ืฉืขื•ื‘ื“ื™ื ื‘ืขื™ืงืจ ืขื ืื•ื‘ื™ื™ืงื˜ื™ื), ื•ื›ื•'. ื•ื›ื“ื™ ืœืืคืฉืจ ืœืคืจื™ืžื™ื˜ื™ื‘ื™ื ืœืขื‘ื•ื“ ืื™ื›ืฉื”ื• ื‘ืกื‘ื™ื‘ื” ืžื•ื ื—ื” ืขืฆืžื™ื ื–ื•, ื”ื™ื•ืฆืจื™ื ืฉืœ Java ื”ืžืฆื™ืื• ืขื˜ื™ืคื•ืช ืขื‘ื•ืจ ื”ื˜ื™ืคื•ืกื™ื ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ( Integer , Character , Double , Boolean ...)

4. ืžื” ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ื”ืขื‘ืจืช ืืจื’ื•ืžื ื˜ื™ื ืœืคื™ ื”ืคื ื™ื” ื•ืœืคื™ ืขืจืš?

ืฉื“ื•ืช ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ืžืื—ืกื ื™ื ืืช ื”ืขืจืš ืฉืœื”ื: ืœืžืฉืœ, ืื ืงื‘ืขื ื• int i = 9; , ืื– ื”ืฉื“ื” i ืžืื—ืกืŸ ืืช ื”ืขืจืš 9. ื›ืืฉืจ ื™ืฉ ืœื ื• ื”ืคื ื™ื” ืœืื•ื‘ื™ื™ืงื˜, ื–ื” ืื•ืžืจ ืฉื™ืฉ ืœื ื• ืฉื“ื” ืขื ื”ืคื ื™ื” ืœืื•ื‘ื™ื™ืงื˜. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ื™ืฉ ืœื ื• ืฉื“ื” ืฉืฉื•ืžืจ ืืช ื”ื›ืชื•ื‘ืช ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ ื‘ื–ื™ื›ืจื•ืŸ.
Cat cat = new Cat();
ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉืฉื“ื•ืช ืขื ื”ืคื ื™ื” ืœืื•ื‘ื™ื™ืงื˜ ืžืื—ืกื ื™ื ื’ื ืขืจื›ื™ื . ื”ืขืจื›ื™ื ืฉืœื”ื ื”ื ื›ืชื•ื‘ื•ืช ื–ื™ื›ืจื•ืŸ. ื›ืœื•ืžืจ, cat ืžืื—ืกืŸ ืืช ื›ืชื•ื‘ืช ื”ื–ื™ื›ืจื•ืŸ ืฉืœ ืื•ื‘ื™ื™ืงื˜ Cat() ื”ื—ื“ืฉ . ื›ืืฉืจ ืื ื• ืžืขื‘ื™ืจื™ื ืืจื’ื•ืžื ื˜ ืœืžืชื•ื“ื”, ื”ืขืจืš ืฉืœื• ืžื•ืขืชืง. ื‘ืžืงืจื” ืฉืœ ืคืจื™ืžื™ื˜ื™ื‘ื™, ื”ืขืจืš ืฉืœ ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ ืžื•ืขืชืง. ื‘ื”ืชืื, ื”ืฉื™ื˜ื” ืขื•ื‘ื“ืช ืขื ื”ืขื•ืชืง. ื›ืืฉืจ ื”ืขื•ืชืง ืžืฉืชื ื”, ื”ืžืงื•ืจ ืื™ื ื• ืžื•ืฉืคืข. ื‘ืžืงืจื” ืฉืœ ืกื•ื’ ื”ืชื™ื™ื—ืกื•ืช, ื”ืขืจืš ืฉืœ ื›ืชื•ื‘ืช ื”ื–ื™ื›ืจื•ืŸ ืžื•ืขืชืง. ื‘ื”ืชืื ืœื›ืš, ืฉื ื™ ืžืฉืชื ื™ ื”ื™ื™ื—ื•ืก ื™ืื—ืกื ื• ื›ืชื•ื‘ื•ืช ื”ืžืฆื‘ื™ืขื•ืช ืขืœ ืื•ืชื• ืื•ื‘ื™ื™ืงื˜. ื•ืื ื ืฉืชืžืฉ ื‘ื”ืชื™ื™ื—ืกื•ืช ื”ื—ื“ืฉื” ื”ื–ื• ื›ื“ื™ ืœืฉื ื•ืช ืืช ื”ืื•ื‘ื™ื™ืงื˜, ืื– ื ื’ืœื” ืฉื”ื™ื ืžืฉืชื ื” ื’ื ืขื‘ื•ืจ ื”ื”ืคื ื™ื” ื”ื™ืฉื ื”. ื”ืจื™ ืฉื ื™ื”ื ืžืฆื‘ื™ืขื™ื ืขืœ ืื•ืชื• ืื•ื‘ื™ื™ืงื˜.

5. ืžื” ื–ื” JVM, JDK ื•-JRE?

JVM ืจืืฉื™ ืชื™ื‘ื•ืช ืฉืœ Java Virtual Machine , ืืฉืจ ืžืจื™ืฅ ืงื•ื“ ื‘ื™ื™ื˜ ืฉืœ Java ืฉื ื•ืฆืจ ืžืจืืฉ ืขืœ ื™ื“ื™ ื”ืžื”ื“ืจ. JRE ืจืืฉื™ ืชื™ื‘ื•ืช ืฉืœ Java Runtime Environment . ื‘ืขื™ืงืจื•ืŸ, ื–ื•ื”ื™ ืกื‘ื™ื‘ื” ืœื”ืคืขืœืช ื™ื™ืฉื•ืžื™ Java. ื”ื•ื ื›ื•ืœืœ ืืช ื”-JVM, ืกืคืจื™ื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช ื•ืจื›ื™ื‘ื™ื ืื—ืจื™ื ืœื”ืคืขืœืช ื™ื™ืฉื•ืžื•ื ื™ื ื•ื™ื™ืฉื•ืžื™ื ื”ื›ืชื•ื‘ื™ื ื‘ืฉืคืช ื”ืชื›ื ื•ืช Java. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ื”-JRE ื”ื•ื ื—ื‘ื™ืœื” ืฉืœ ื›ืœ ืžื” ืฉืฆืจื™ืš ื›ื“ื™ ืœื”ืคืขื™ืœ ืชื•ื›ื ื™ืช Java ืžื”ื•ื“ืจืช, ืืš ื”ื™ื ืื™ื ื” ื›ื•ืœืœืช ื›ืœื™ื ื•ื›ืœื™ ืขื–ืจ ื›ื’ื•ืŸ ืžื”ื“ืจื™ื ืื• ืžืืคื™ ื‘ืื’ื™ื ืœืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื. JDK ืจืืฉื™ ืชื™ื‘ื•ืช ืฉืœ Java Development Kit , ืฉื”ื™ื ื”ืจื—ื‘ื” ืฉืœ ื”- JRE . ื›ืœื•ืžืจ, ื–ื•ื”ื™ ืกื‘ื™ื‘ื” ืœื ืจืง ืœื”ืคืขืœืช ื™ื™ืฉื•ืžื™ Java, ืืœื ื’ื ืœืคื™ืชื•ื—ื. ื”-JDK ืžื›ื™ืœ ืืช ื›ืœ ืžื” ืฉื‘-JRE, ื‘ืชื•ืกืคืช ื›ืœื™ื ื ื•ืกืคื™ื ืฉื•ื ื™ื - ืžื”ื“ืจื™ื ื•ื ื™ืคื•ื™ ื‘ืื’ื™ื - ื”ื“ืจื•ืฉื™ื ืœื™ืฆื™ืจืช ื™ื™ืฉื•ืžื™ Java (ื›ื•ืœืœ ืžืกืžื›ื™ Java). ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java.  ื—ืœืง 1 - 3

6. ืœืžื” ืœื”ืฉืชืžืฉ ื‘-JVM?

ื›ืคื™ ืฉืฆื•ื™ืŸ ืœืขื™ืœ, ื”-Java Virtual Machine ื”ื•ื ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ื”ืžืจื™ืฅ ืงื•ื“ ื‘ื™ื™ื˜ ืฉืœ Java ืฉื ื•ืฆืจ ืžืจืืฉ ืขืœ ื™ื“ื™ ื”ืžื”ื“ืจ. ื–ื” ืื•ืžืจ ืฉื”-JVM ืœื ืžื‘ื™ืŸ ืืช ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ Java. ืื–, ืจืืฉื™ืช, ืื ื• ืžืจื›ื™ื‘ื™ื ืงื‘ืฆื™ .java . ืœืงื‘ืฆื™ ื”ื”ื™ื“ื•ืจ ื™ืฉ ืืช ืกื™ื•ืžืช .class ื•ื”ื ื›ืขืช ื‘ืฆื•ืจืช bytecode, ืžื” ืฉื”-JVM ืžื‘ื™ืŸ. ื”-JVM ืฉื•ื ื” ืขื‘ื•ืจ ื›ืœ ืžืขืจื›ืช ื”ืคืขืœื”. ื›ืืฉืจ ื”-JVM ืžืจื™ืฅ ืงื•ื‘ืฆื™ bytecode, ื”ื•ื ืžืชืื™ื ืื•ืชื ืœืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉื‘ื” ื”ื•ื ืคื•ืขืœ. ืœืžืขืฉื”, ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ JVMs ืฉื•ื ื™ื, ื”-JDK (ืื• JRE) ืฉื•ื ื” ื’ื ืขื‘ื•ืจ ืžืขืจื›ืช ื”ืคืขืœื” ืฉื•ื ื” (ื›ืœ ื’ืจืกื” ืฆืจื™ื›ื” JVM ืžืฉืœื”). ื‘ื•ืื• ื ื–ื›ื•ืจ ืื™ืš ื”ืคื™ืชื•ื— ืขื•ื‘ื“ ื‘ืฉืคื•ืช ืชื›ื ื•ืช ืื—ืจื•ืช. ืืชื” ื›ื•ืชื‘ ืชื•ื›ื ื™ืช, ื•ืื– ื”ืงื•ื“ ืฉืœื” ืžืงื•ืžืคืœ ืœืงื•ื“ ืžื›ื•ื ื” ืขื‘ื•ืจ ืžืขืจื›ืช ื”ืคืขืœื” ืกืคืฆื™ืคื™ืช, ื•ืื– ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืื•ืชื•. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ืืชื” ืฆืจื™ืš ืœื›ืชื•ื‘ ื’ืจืกืื•ืช ืฉื•ื ื•ืช ืฉืœ ื”ืชื•ื›ื ื™ืช ืขื‘ื•ืจ ื›ืœ ืคืœื˜ืคื•ืจืžื”. ืื‘ืœ ื”ืขื™ื‘ื•ื“ ื”ื›ืคื•ืœ ืฉืœ ื”ืงื•ื“ ืฉืœ Java (ื”ื™ื“ื•ืจ ืฉืœ ืงื•ื“ ื”ืžืงื•ืจ ืœืชื•ืš bytecode, ื•ืœืื—ืจ ืžื›ืŸ ืขื™ื‘ื•ื“ ืฉืœ bytecode ืขืœ ื™ื“ื™ ื”-JVM) ืžืืคืฉืจ ืœืš ืœื™ื”ื ื•ืช ืžื”ื™ืชืจื•ื ื•ืช ืฉืœ ืคืชืจื•ืŸ ื—ื•ืฆื” ืคืœื˜ืคื•ืจืžื•ืช. ืื ื• ื™ื•ืฆืจื™ื ืืช ื”ืงื•ื“ ืคืขื ืื—ืช ื•ืžืงืžืคืœื™ื ืื•ืชื• ืœื‘ื™ื™ื˜ืงื•ื“. ืื– ื ื•ื›ืœ ืœืงื—ืช ืื•ืชื• ืœื›ืœ ืžืขืจื›ืช ื”ืคืขืœื”, ื•ื”-JVM ื”ืžืงื•ืจื™ ืžืกื•ื’ืœ ืœื”ืคืขื™ืœ ืื•ืชื•. ื•ื–ื• ื‘ื“ื™ื•ืง ื”ืชื›ื•ื ื” ื”ืื’ื“ื™ืช ืฉืœ ื’'ืื•ื•ื” ืœื›ืชื•ื‘ ืคืขื ืื—ืช, ื”ืคืขืœ ื‘ื›ืœ ืžืงื•ื . ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java.  ื—ืœืง 1 - 4

7. ืžื”ื• bytecode?

ื›ืคื™ ืฉืืžืจืชื™ ืœืžืขืœื”, ื”ืžื”ื“ืจ ืžืžื™ืจ ืงื•ื“ ื’'ืื•ื•ื” ืœื‘ื™ื™ื˜ืงื•ื“ ื‘ื™ื ื™ื™ื ( ืื ื—ื ื• ืขื•ื‘ืจื™ื ืžืงื‘ืฆื™ื ืขื ืกื™ื•ืžืช .java ืœืงื‘ืฆื™ื ืขื ืกื™ื•ืžืช .class). ื‘ืžื•ื‘ื ื™ื ืจื‘ื™ื, bytecode ื“ื•ืžื” ืœืงื•ื“ ืžื›ื•ื ื”, ืืœื ืฉืžืขืจื›ืช ื”ื”ื•ืจืื•ืช ืฉืœื• ืื™ื ื” ืžื™ื•ืขื“ืช ืœืžืขื‘ื“ ืืžื™ืชื™, ืืœื ืœืžืขื‘ื“ ื•ื™ืจื˜ื•ืืœื™. ืขื ื–ืืช, ื”ื•ื ื™ื›ื•ืœ ืœื›ืœื•ืœ ืงื˜ืขื™ื ื”ืžื™ื•ืขื“ื™ื ืœืžื”ื“ืจ JIT, ืืฉืจ ืžื™ื™ืขืœ ืืช ื‘ื™ืฆื•ืข ื”ืคืงื•ื“ื” ืขื‘ื•ืจ ื”ืžืขื‘ื“ ื‘ืคื•ืขืœ ืฉืขืœื™ื• ื”ืชื•ื›ื ื™ืช ืคื•ืขืœืช. ืงื•ืžืคื™ืœืฆื™ื” JIT, ื”ื ืงืจืืช ื’ื ืงื•ืžืคื™ืœืฆื™ื” ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”, ื”ื™ื ื˜ื›ื ื•ืœื•ื’ื™ื” ืฉืžื’ื‘ื™ืจื” ืืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ื›ื ืช bytecode ืขืœ ื™ื“ื™ ืงื•ืžืคื™ืœืฆื™ื” ืฉืœ ืงื•ื“ ื‘ื™ื™ื˜ ืœืงื•ื“ ืžื›ื•ื ื” ืื• ืคื•ืจืžื˜ ืื—ืจ ื‘ื–ืžืŸ ืฉื”ืชื•ื›ื ื™ืช ืคื•ืขืœืช. ื›ืคื™ ืฉืื•ืœื™ ื ื™ื—ืฉืชื, ื”-JVM ืžืฉืชืžืฉ ื‘ืžื”ื“ืจ JIT ื›ืืฉืจ ื”ื•ื ืžืจื™ืฅ ืงื•ื“ ื‘ืชื™ื. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ืงื•ื“ ื‘ื™ื™ื˜ ืœื“ื•ื’ืžื”: ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java.  ื—ืœืง 1 - 5ืœื ืงืจื™ื ืžื“ื™, ืื”? ื”ื—ื“ืฉื•ืช ื”ื˜ื•ื‘ื•ืช ื”ืŸ ืฉื”ื”ื•ืจืื” ื”ื–ื• ืœื ืžื™ื•ืขื“ืช ืœื ื•. ื–ื” ืขื‘ื•ืจ JVM.

8. ืžื”ืŸ ื”ืชื›ื•ื ื•ืช ืฉืœ JavaBean?

JavaBean ื”ื•ื ืžื—ืœืงืช Java ืฉืขื•ืงื‘ืช ืื—ืจ ื›ืœืœื™ื ืžืกื•ื™ืžื™ื . ื”ื ื” ื›ืžื” ืžื”ื›ืœืœื™ื ืœื›ืชื™ื‘ืช JavaBean :
  1. ื”ืžื—ืœืงื” ื—ื™ื™ื‘ืช ืœื”ื›ื™ืœ ื‘ื ืื™ ืจื™ืง (ืœืœื ื•ื™ื›ื•ื—) ืขื ืžืฉื ื” ื”ื’ื™ืฉื” ื”ืฆื™ื‘ื•ืจื™ืช . ื‘ื ืื™ ื–ื” ืžืืคืฉืจ ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ืฉืœ ื”ืžื—ืœืงื” ืœืœื ื‘ืขื™ื•ืช ืžื™ื•ืชืจื•ืช (ื›ื“ื™ ืฉืœื ื™ื”ื™ื” ื”ืชืขืกืงื•ืช ืžื™ื•ืชืจืช ื‘ื˜ื™ืขื•ื ื™ื).

  2. ื”ื’ื™ืฉื” ืœืฉื“ื•ืช ืคื ื™ืžื™ื™ื ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ืฉื™ื˜ื•ืช get and set ืžื•ืคืข, ืฉืืžื•ืจื•ืช ืœื”ื™ื•ืช ื‘ื™ื™ืฉื•ื ื”ืกื˜ื ื“ืจื˜ื™. ืœื“ื•ื’ืžื”, ืื ื™ืฉ ืœื ื• ืฉื“ื” ืฉื , ืื– ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืœื ื• getName ื•- setName ื•ื›ื•'. ื–ื” ืžืืคืฉืจ ืœื›ืœื™ื ืฉื•ื ื™ื (ืžืกื’ืจื•ืช) ืœืงื‘ืœ ื•ืœื”ื’ื“ื™ืจ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืืช ื”ืชื•ื›ืŸ ืฉืœ ืฉืขื•ืขื™ืช ืœืœื ื›ืœ ืงื•ืฉื™.

  3. ื”ืžื—ืœืงื” ื—ื™ื™ื‘ืช ืœืขืงื•ืฃ ืืช ื”ืžืชื•ื“ื•ืช equals() , hashCode() ื•- toString() .

  4. ื”ืžื—ืœืงื” ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ื ื™ืชื ืช ืœืกื™ื“ืจื”. ื›ืœื•ืžืจ, ืขืœื™ื• ืœื”ื™ื•ืช ื‘ืขืœ ืžืžืฉืง Serializable marker ืื• ืœื™ื™ืฉื ืืช ืžืžืฉืง Externalizable . ื–ืืช ืขืœ ืžื ืช ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœืฉืžื•ืจ, ืœืื—ืกืŸ ื•ืœืฉื—ื–ืจ ื‘ืื•ืคืŸ ืžื”ื™ืžืŸ ืืช ืžืฆื‘ ื”ืฉืขื•ืขื™ืช.

ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java.  ื—ืœืง 1 - 6

9. ืžื”ื™ OutOfMemoryError?

OutOfMemoryError ื”ื™ื ืฉื’ื™ืืช ื–ืžืŸ ืจื™ืฆื” ืงืจื™ื˜ื™ืช ื”ืงืฉื•ืจื” ืœ-Java Virtual Machine (JVM). ืฉื’ื™ืื” ื–ื• ืžืชืจื—ืฉืช ื›ืืฉืจ ื”-JVM ืื™ื ื• ื™ื›ื•ืœ ืœื”ืงืฆื•ืช ืื•ื‘ื™ื™ืงื˜ ืžื›ื™ื•ื•ืŸ ืฉืื™ืŸ ืžืกืคื™ืง ื–ื™ื›ืจื•ืŸ ืขื‘ื•ืจื•, ื•ืื•ืกืฃ ื”ืืฉืคื” ืื™ื ื• ื™ื›ื•ืœ ืœื”ืงืฆื•ืช ื–ื™ื›ืจื•ืŸ ื ื•ืกืฃ. ื›ืžื” ืกื•ื’ื™ื ืฉืœ OutOfMemoryError :
  • OutOfMemoryError: ืฉื˜ื— ืขืจื™ืžืช Java - ืœื ื ื™ืชืŸ ืœื”ืงืฆื•ืช ืืช ื”ืื•ื‘ื™ื™ืงื˜ ื‘ืขืจื™ืžืช Java ืขืงื‘ ื—ื•ืกืจ ื–ื™ื›ืจื•ืŸ. ืฉื’ื™ืื” ื–ื• ื™ื›ื•ืœื” ืœื”ื™ื’ืจื ืขืœ ื™ื“ื™ ื“ืœื™ืคืช ื–ื™ื›ืจื•ืŸ ืื• ืขืœ ื™ื“ื™ ื’ื•ื“ืœ ืขืจื™ืžื” ืฉืœ ื‘ืจื™ืจืช ืžื—ื“ืœ ืงื˜ืŸ ืžื“ื™ ืขื‘ื•ืจ ื”ื™ื™ืฉื•ื ื”ื ื•ื›ื—ื™.

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

  • OutOfMemoryError: ื’ื•ื“ืœ ื”ืžืขืจืš ื”ืžื‘ื•ืงืฉ ื—ื•ืจื’ ืžืžื’ื‘ืœืช ื”-VM - ื–ื” ืžืฆื™ื™ืŸ ืฉื”ืืคืœื™ืงืฆื™ื” ื ื™ืกืชื” ืœื”ืงืฆื•ืช ื–ื™ื›ืจื•ืŸ ืœืžืขืจืš ื”ื—ื•ืจื’ ืžื’ื•ื“ืœ ื”ืขืจื™ืžื”. ืฉื•ื‘, ืคื™ืจื•ืฉ ื”ื“ื‘ืจ ืขืฉื•ื™ ืœื”ื™ื•ืช ืฉืœื ื”ื•ืงืฆื” ืžืกืคื™ืง ื–ื™ื›ืจื•ืŸ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ.

  • OutOfMemoryError: Metaspace - ืœืขืจื™ืžื” ืื–ืœ ื”ืžืงื•ื ืฉื”ื•ืงืฆื” ืœืžื˜ื ื ืชื•ื ื™ื (ืžื˜ื ื ืชื•ื ื™ื ื”ื ื”ื•ืจืื•ืช ืœืžื—ืœืงื•ืช ื•ืฉื™ื˜ื•ืช).

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

10. ืžื”ื• ืžืขืงื‘ ืžื—ืกื ื™ืช? ืื™ืš ืื ื™ ืžืฉื™ื’ ืืช ื–ื”?

ืขืงื‘ื•ืช ืžื—ืกื ื™ืช ื”ื™ื ืจืฉื™ืžื” ืฉืœ ื”ืžื—ืœืงื•ืช ื•ื”ืฉื™ื˜ื•ืช ืฉื ืงืจืื• ืขื“ ืœื ืงื•ื“ื” ื–ื• ื‘ื‘ื™ืฆื•ืข ื™ื™ืฉื•ื. ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ืืช ืžืขืงื‘ ื”ืขืจื™ืžื” ื‘ื ืงื•ื“ื” ืกืคืฆื™ืคื™ืช ื‘ืืคืœื™ืงืฆื™ื” ืขืœ ื™ื“ื™ ื›ืš:
StackTraceElement[] stackTraceElements =Thread.currentThread().getStackTrace();
ื–ื” ืžืฉื™ื’ ืœื ื• ืžืขืจืš ืฉืœ StackTraceElements ืžืกื•ื“ืจื™ื ืœืคื™ ืกื“ืจ ื”-Last In First Out (LIFO) . ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java.  ื—ืœืง 1 - 7ื‘-Java, ื›ืืฉืจ ืื ืฉื™ื ืžื“ื‘ืจื™ื ืขืœ ืžืขืงื‘ ืžื—ืกื ื™ืช, ื”ื ื‘ื“ืจืš ื›ืœืœ ืžืชื›ื•ื•ื ื™ื ืœืžืขืงื‘ ืžื—ืกื ื™ืช ื”ืžื•ืฆื’ ื‘ืงื•ื ืกื•ืœื” ื›ืืฉืจ ืžืชืจื—ืฉืช ืฉื’ื™ืื” (ืื• ื—ืจื™ื’ื”). ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ืืช ืžืขืงื‘ ื”ืขืจื™ืžื” ืžื—ืจื™ื’ื™ื ื›ืžื• ื–ื”:
StackTraceElement[] stackTraceElements;
try{
                ...
} catch (Exception e) {
   stackTraceElements = e.getStackTrace();
}
ื•ืื ื‘ืจืฆื•ื ื ื• ืœื”ืฆื™ื’ ืžืขืงื‘ ืžื—ืกื ื™ืช ืฉืœ ื—ืจื™ื’ ื‘ืงื•ื ืกื•ืœื”:
try{
                ...
} catch (Exception e) {
  e.printStackTrace();
}
ื‘ื ื•ืกืฃ, ืื ืžืชืจื—ืฉืช ืฉื’ื™ืื”, ื—ืจื™ื’ื” ืœื ืžืกื•ืžื ืช ืื• ื—ืจื™ื’ื” ืžืกื•ืžื ืช ืœืœื ื˜ื™ืคื•ืœ , ืื ื• ืžืงื‘ืœื™ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืืช ืžืขืงื‘ ื”ืžื—ืกื ื™ืช ืฉืœ ื”ื—ืจื™ื’ ื‘ืžืกื•ืฃ ื›ืืฉืจ ื”ื™ื™ืฉื•ื ืงื•ืจืก. ื”ื ื” ื“ื•ื’ืžื” ืงื˜ื ื” ืœืžืขืงื‘ ืžื—ืกื ื™ืช ื‘ืงื•ื ืกื•ืœื”: ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java.  ื—ืœืง 1 - 8ื•ื‘ื”ืขืจื” ื–ื•, ื ืกื™ื™ื ืืช ื”ื“ื™ื•ืŸ ืฉืœื ื• ื‘ื ื•ืฉื ื–ื” ื”ื™ื•ื.ื‘ื—ื™ื ืช ืฉืืœื•ืช ื•ืชืฉื•ื‘ื•ืช ืžืจืื™ื•ืŸ ืขื‘ื•ื“ื” ืœืžืฉืจืช ืžืคืชื— Java.  ื—ืœืง 1 - 9
ืงืจื ืขื•ื“:
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION