Skip to content

Latest commit

Β 

History

History
128 lines (115 loc) Β· 7.7 KB

File metadata and controls

128 lines (115 loc) Β· 7.7 KB

1. λ³€μˆ˜(variables)

  • λ³€μˆ˜λŠ” 사전적 μ˜λ―Έλ‘œλŠ” λ³€ν•˜λŠ” κ°’
  • λ³€μˆ˜λŠ” 값을 μ €μž₯ν•΄λ†“λŠ” 곡간(λ©”λͺ¨λ¦¬ 곡간)
  • int result = 1 + 2; System.out.println(result); resultλŠ” κ³„μ‚°ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ˜ κ²°κ³Ό 값을 λ‹΄λŠ” λ³€μˆ˜
  • λ³€μˆ˜λŠ” μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”(값을 λŒ€μž…)둜 λ‚˜λˆ μ§„λ‹€.

2. λ³€μˆ˜μ˜ μ„ μ–Έ

  • μžλ£Œν˜• λ³€μˆ˜λͺ…; ex) int result; long currentTime; char text;
  • λ³€μˆ˜λͺ… μ •ν•˜λŠ” κ·œμΉ™
    • λ³€μˆ˜λͺ…은 영문자(λŒ€λ¬Έμž, μ†Œλ¬Έμž), 숫자, 특수기호($, _)만 μ‚¬μš© κ°€λŠ₯
    • λ³€μˆ˜λͺ…은 숫자둜 μ‹œμž‘ν•  수 μ—†λ‹€.
    • μžλ°”μ—μ„œ μ‚¬μš©μ€‘μΈ μ˜ˆμ•½μ–΄(ν•¨μˆ˜,λͺ…λ Ήμ–΄)λŠ” μ‚¬μš©ν•  수 μ—†λ‹€. (if, while, else, int, long, string ...) ex) int 1(x), long if(x), String 1aser(x), int_num, $num, num1(o)
    • λ³€μˆ˜λͺ…을 μ„ μ–Έν•  λ•ŒλŠ” λ³€μˆ˜κ°€ 어디에 μ‚¬μš©λ˜λŠ” μ§€ λͺ…ν™•ν•˜κ²Œ μ•Œ 수 μžˆλŠ” λ³€μˆ˜λͺ…을 짓도둝 ν•œλ‹€. (μœ μ§€λ³΄μˆ˜ κ΄€μ μ—μ„œ λ‹€λ₯Έ κ°œλ°œμžκ°€ μ½”λ“œλ₯Ό 봀을 λ•Œλ„ λ³€μˆ˜λ₯Ό 어디에 μ‚¬μš©ν•˜λŠ”μ§€ λͺ…ν™•ν•˜κ²Œ μ•Œ 수 μžˆλ„λ‘)
      • CamelCase, SnakeCase λ“± μ—¬λŸ¬κ°€μ§€ μ’…λ₯˜μ˜ ν‘œκΈ°λ²•μ΄ μ‘΄μž¬ν•˜μ§€λ§Œ λŒ€λΆ€λΆ„ CamelCase ν‘œκΈ°λ²•μ„ 많이 μ‚¬μš©ν•œλ‹€.
      • CamelCase ν‘œκΈ°λ²•μ€ λ³€μˆ˜λͺ…μ˜ μ²«λ‹¨μ–΄λŠ” λͺ¨λ‘ μ†Œλ¬Έμžλ‘œ λ‘λ²ˆμ§Έ λ‹¨μ–΄μ˜ μ²«κΈ€μžλ§Œ λŒ€λ¬Έμžλ‘œ μ„ μ–Έν•˜λŠ” ν‘œκΈ°λ²• ex)λ§μ…ˆ κ²°κ³Ό λ³€μˆ˜λͺ…은 int addResult;

3. μžλ£Œν˜•(μ›μ‹œνƒ€μž… : primitive Type)

  • μžλ£Œν˜•μ€ λ©”λͺ¨λ¦¬μ— 값을 직접 μ €μž₯ν•˜λŠ” ν˜•νƒœ
  • μžλ°”μ˜ λ©”λͺ¨λ¦¬ κ΅¬μ‘°λŠ” heap, stack, static λΆ„λ₯˜
  • μžλ£Œν˜• stack λ©”λͺ¨λ¦¬μ— μ €μž₯됨
  • μžλ£Œν˜•μ˜ μ’…λ₯˜ : μ •μˆ˜ν˜•, λ¬Έμžν˜•, μ‹€μˆ˜ν˜•, λ…Όλ¦¬ν˜•
  • μ •μˆ˜ν˜• : byte, short, int, long
  • λ¬Έμžν˜• : char
  • μ‹€μˆ˜ν˜• : floatm double
  • λ…Όλ¦¬ν˜• : boolean

4. μ •μˆ˜ν˜• μ›μ‹œνƒ€μž…

  • μ •μˆ˜ν˜• μ›μ‹œνƒ€μž…(μžλ£Œν˜•)은 음수, 0, μ–‘μˆ˜λ₯Ό ν‘œν˜„ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” μžλ£Œν˜•
  • byteλŠ” 1byte의 λ©”λͺ¨λ¦¬ 곡간을 μ°¨μ§€
  • byte의 ν‘œν˜„ λ²”μœ„ : -128 ~ 127
  • short은 2byte의 λ©”λͺ¨λ¦¬ 곡간을 μ°¨μ§€
  • short의 ν‘œν˜„ λ²”μœ„ : -32768 ~ 32767
  • intλŠ” 4byte의 λ©”λͺ¨λ¦¬ 곡간을 μ°¨μ§€
  • int의 ν‘œν˜„ λ²”μœ„λŠ” -21μ–΅ ~ 21μ–΅
  • long은 8byte의 λ©”λͺ¨λ¦¬ 곡간을 μ°¨μ§€
  • long의 ν‘œν˜„ λ²”μœ„ : -100κ²½ ~ 100κ²½
  • long λ³€μˆ˜ν˜•μ˜ μ΄ˆκΈ°ν™”μ‹œ 뒀에 L(l)을 뢙여야함 ex) long lNum = 1000000000L(l);
  • μžλ°”μ—μ„œ μ •μˆ˜ν˜• 연산이 일어날 경우 intλ₯Ό κΈ°λ³Έν˜•νƒœλ‘œ μ‚¬μš©ν•¨μœΌλ‘œ long을 μ œμ™Έν•œ μ •μˆ˜ν˜• 연산은 intν˜•μœΌλ‘œ λ³€ν™˜ ex) short num1 = 1; short num2 =2; System.out.println(num1 + num2); => intν˜•μœΌλ‘œ μΉ˜ν™˜λœ κ²°κ³Όκ°’

5. λ¬Έμžν˜• μ›μ‹œνƒ€μž…

  • λ¬Έμžν˜• μ›μ‹œνƒ€μž…(μžλ£Œν˜•)은 ASCII μ½”λ“œλΌλŠ” μ½”λ“œμ§‘ν•©μ— μ •μ˜λ˜μ–΄ μžˆλŠ” 값을 톡해 문자둜 μΉ˜ν™˜ν•˜μ—¬ ν‘œμΆœ (각 언어에 맞좰 μš©λŸ‰μ΄ 2λ°”μ΄νŠΈλ₯Ό λ„˜μ–΄κ°€λŠ” μ•„μŠ€ν‚€μ½”λ“œλ₯Ό μœ λ‹ˆμ½”λ“œλΌκ³  함) ex) char txt = 'A'; //μ‹€μ œλ‘œλŠ” A에 ν•΄λ‹Ήν•˜λŠ” 10μ§„μˆ˜ κ°’ 65κ°€ μ €μž₯됨
  • λ¬Έμžν˜• λ³€μˆ˜λ₯Ό intν˜•μœΌλ‘œ λ³€ν™˜ν•˜λ©΄ Ascii μ½”λ“œ 값을 확인할 수 μžˆλ‹€. ex) char txt = 'A'; System.out.println(txt); -> Aλ₯Ό 좜λ ₯ System.out.println((int)txt); -> A에 ν•΄λ‹Ήν•˜λŠ” Ascii μ½”λ“œ κ°’ 좜λ ₯
  • charλŠ” 2byte의 λ©”λͺ¨λ¦¬ 곡간 μ°¨μ§€
  • char의 ν‘œν˜„ λ²”μœ„ : 0x00 ~ 0x7FκΉŒμ§€μ˜ λ¬Έμžν˜• 데이터 ν‘œμΆœ('\u0000' ~ '\uFFFF'κΉŒμ§€μ˜ λ¬Έμžν˜•(μœ λ‹ˆμ½”λ“œ))

6. μ‹€μˆ˜ν˜• μ›μ‹œνƒ€μž…

  • μ‹€μˆ˜ν˜• μ›μ‹œνƒ€μž…(μžλ£Œν˜•)은 μ‹€μˆ˜ 값이 데이터λ₯Ό ν‘œμΆœν•˜κΈ° μœ„ν•΄ μ‚¬μš©(μ†Œμˆ˜μ μ„ ν¬ν•¨ν•˜λŠ” μ‹€μˆ˜ κ°’)
  • floatλŠ” 4byte의 λ©”λͺ¨λ¦¬ 곡간을 μ°¨μ§€
  • float의 ν‘œν˜„ λ²”μœ„ : 1.4E-45 ~ 3.4028235E8
  • double은 8byte의 λ©”λͺ¨λ¦¬ 곡간 μ°¨μ§€
  • double의 ν‘œν˜„ λ²”μœ„ : 4.9E-324 ~ 1.7976...E308
  • float으둜 μ„ μ–Έλœ λ³€μˆ˜μ— 값을 λŒ€μž…(μ΄ˆκΈ°ν™”)ν•  λ•Œ 값뒀에 f(F)λ₯Ό λΆ™μ—¬μ€€λ‹€. ex) float fNum = 3.14F(f);
  • μ‹€μ œ 개발 ν™˜κ²½μ—μ„œλŠ” floatλ³΄λ‹€λŠ” double을 많이 μ‚¬μš©. float보닀 큰 λ‹¨μœ„μ˜ 값이 듀어왔을 λ•Œ μ—λŸ¬κ°€ λ°œμƒν•˜λŠ” 것을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ double을 주둜 μ‚¬μš©.

7. λ…Όλ¦¬ν˜• μ›μ‹œνƒ€μž…

  • λ…Όλ¦¬ν˜• μ›μ‹œνƒ€μž…(μžλ£Œν˜•)은 true, false 두 κ°€μ§€ κ°’λ§Œ 쑴재.
  • true = 1, false = 0; μžλ°”μ—μ„œ λ©”λͺ¨λ¦¬μ˜ κΈ°λ³Έλ‹¨μœ„κ°€ 1byte이기 λ•Œλ¬Έμ— λ…Όλ¦¬ν˜• boolean도 1byteλ₯Ό μ‚¬μš©ν•œλ‹€.

8. λ³€μˆ˜μ˜ μ΄ˆκΈ°ν™”(κ°’ λŒ€μž…)

  • ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•œ ν›„ λ³€μˆ˜μ— 값을 λŒ€μž…ν•˜λŠ” μž‘μ—…μ„ μ΄ˆκΈ°ν™”λΌκ³  ν‘œν˜„
  • λ³€μˆ˜μ˜ μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”λ₯Ό 뢄리 ex) int result; //λ³€μˆ˜λ₯Ό λ¨Όμ € μ„ μ–Έ result = 100; // λ³€μˆ˜μ˜ μ„ μ–Έκ³Ό λΆ„λ¦¬ν•˜μ—¬ μ΄ˆκΈ°ν™”
  • λ³€μˆ˜μ˜ μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™” ex) int result = 100; //λ³€μˆ˜μ˜ μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”

9. μžλ°”μ˜ λ©”λͺ¨λ¦¬

  • μžλ°”λŠ” ν”„λ‘œκ·Έλž¨μ΄ ꡬ동될 λ•Œ 가상메λͺ¨λ¦¬λ₯Ό ν• λ‹Ή λ°›μ•„μ„œ μ‚¬μš©
  • JVM이 ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λ©΄μ„œ 운영체제(windows, macOS, Linux...)에 ν•„μš”ν•œ 가상메λͺ¨λ¦¬λ₯Ό μš”μ²­. μš΄μ˜μ²΄μ œλŠ” μš”μ²­λ°›μ€ 가상메λͺ¨λ¦¬λ₯Ό 물리적 λ©”λͺ¨λ¦¬(RAM)μ—μ„œ ν• λ‹Ήν•΄μ„œ λ„˜κ²¨μ€Œ.
  • 가상메λͺ¨λ¦¬λŠ” Heap, Stack, Static μ˜μ—­μœΌλ‘œ ꡬ뢄.
  • Heap μ˜μ—­μ—λŠ” μ°Έμ‘°νƒ€μž…μ˜ 값이 μ €μž₯됨
  • Stack μ˜μ—­μ—λŠ” μ›μ‹œνƒ€μž…μ˜ 값이 μ €μž₯됨
  • Stactic μ˜μ—­μ—λŠ” Static으둜 μ„ μ–Έλœ 정적 λ³€μˆ˜λ‚˜ 정적 λ©”μ†Œλ“œμ™€ μ „μ—­λ³€μˆ˜κ°€ μ €μž₯
  • Static의 μ˜μ—­μ˜ λ³€μˆ˜ κ°’μ΄λ‚˜ λ©”μ†Œλ“œλŠ” ν”„λ‘œκ·Έλž¨ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ 계속 쑴재. Garbage Collector의 영ν–₯을 λ°›μ§€ μ•ŠμŒ.

10. μ›μ‹œνƒ€μž…κ³Ό Stackμ˜μ—­

  • JVM의 가상메λͺ¨λ¦¬ 곡간은 ν•œ 칸에 1Byteμ”© μ°¨μ§€
  • int λ³€μˆ˜ μ„ μ–Έ μ‹œ λ©”λͺ¨λ¦¬ 곡간을 4칸을 μ°¨μ§€
  • μ°¨μ§€ν•œ λ©”λͺ¨λ¦¬ 곡간에 λ³€μˆ˜λ₯Ό μ €μž₯
  • 4칸에 λŒ€ν•œ 별칭을 λ³€μˆ˜λͺ…μœΌλ‘œ μ§€μ •

  • int a = 100; λ³€μˆ˜λ₯Ό μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™” ν–ˆμ„ λ•Œ
  • JVM은 가상메λͺ¨λ¦¬(stackμ˜μ—­)μ—μ„œ μžλ£Œν˜•μ˜ 크기만큼의 λ©”λͺ¨λ¦¬ 곡간을 확보(4μΉΈ)
  • ν™•λ³΄λœ 곡간에 μ΄ˆκΈ°ν™”λœ κ°’(100)을 μ €μž₯
  • ν™•λ³΄λœ κ³΅κ°„μ˜ 이름(별칭)을 μ„ μ–Έλœ λ³€μˆ˜λͺ…μœΌλ‘œ μ§€μ •
  • System.out.println(a); λ“± aλ₯Ό μ‚¬μš©ν•˜λ©΄ λ©”λͺ¨λ¦¬ κ³΅κ°„μ—μ„œ aλΌλŠ” 이름을 μ°Ύμ•„μ„œ κ·Έ 곡간에 μžˆλŠ” 값을 μ‚¬μš©
  • μ›μ‹œνƒ€μž… λ³€μˆ˜λŠ” λ©”λͺ¨λ¦¬μ˜ μŠ€νƒμ˜μ—­μ— μ €μž₯된 λ³€μˆ˜λͺ…을 톡해 μŠ€νƒμ˜μ—­μ˜ 값을 μ°Έμ‘°ν•΄μ„œ μ‚¬μš©ν•œλ‹€.

11. μžλ£Œν˜• 없이 λ³€μˆ˜ μ„ μ–Έν•˜κΈ°(μžλ°” 10 이상)

  • varλΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μžλ£Œν˜• 지정을 ν•˜μ§€μ•Šκ³  λ³€μˆ˜μ„ μ–Έμ΄ κ°€λŠ₯ν•˜λ‹€.
  • λ³€μˆ˜ μžλ£Œν˜• μΆ”λ‘ μ΄λΌλŠ” κΈ°λŠ₯을 ν†΅ν•΄μ„œ μ΄ˆκΈ°ν™”(κ°’ λŒ€μž…)λ˜λŠ” κ°’μ˜ μžλ£Œν˜•μ„ 좔둠함.
  • var λ³€μˆ˜λŠ” μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”κ°€ λ˜μ–΄μ•Όν•¨. ex) var str = "hello"; -> JVMμ—μ„œ "둜 묢인 것을 μΈμ‹ν•˜μ—¬ varνƒ€μž…μ„ String νƒ€μž…μœΌλ‘œ μ»΄νŒŒμΌν•˜κ²Œ 됨. var num = 10; -> JVMμ—μ„œ 숫자둜 μΈμ‹ν•˜μ—¬ int둜 μ»΄νŒŒμΌν•˜κ²Œ 됨
  • μžλ£Œν˜•μ΄ μΆ”λ‘ λœ μƒνƒœμ—μ„œ λ‹€λ₯Έ μžλ£Œν˜•μ˜ 값을 λŒ€μž…ν•  수 μ—†λ‹€. ex) var str = "java"; -> string으둜 μΆ”λ‘ λœ μƒνƒœ str = 10; -> string으둜 이미 μΆ”λ‘ λœ λ³€μˆ˜μ΄κΈ°μ— int값이 λŒ€μž…λ˜λ©΄ 컴파일였λ₯˜κ°€ λ°œμƒν•¨.

12. μƒμˆ˜

  • μƒμˆ˜λŠ” λ³€ν•˜μ§€ μ•ŠλŠ” κ°’. ν•œ 번 μ΄ˆκΈ°ν™” 된 μƒνƒœμ˜ μƒμˆ˜λŠ” 값을 λ³€κ²½ν•  수 μ—†λ‹€.
  • μƒμˆ˜λŠ” μ •ν•΄μ§„ κ°’λ“€μœΌ μ§€μ •ν•  λ•Œ μ‚¬μš© ex) 1년이 12κ°œμ›”μΈ 것은 λ³€ν•˜μ§€ μ•ŠλŠ” 법칙이기 λ•Œλ¬Έμ— 이런 경우 μƒμˆ˜ μ‚¬μš© final int COUNT_MONTHS = 12; 1주일이 7일 => final int COUNT_DAYS_WEEK = 7; μ›μ£Όμœ¨ 3.14 => final double PI = 3.14;
  • μƒμˆ˜μ˜ μ„ μ–Έμ—λŠ” finalν‚€μ›Œλ“œλ₯Ό μ‚¬μš©. μƒμˆ˜μ˜ λ³€μˆ˜λͺ…은 λŒ€λ¬Έμžλ‘œ 지정해야함.
  • λ³€μˆ˜λͺ…이 λͺ¨λ‘ λŒ€λ¬Έμžμž„μœΌλ‘œ Camel case λŒ€μ‹  _λ₯Ό λ‹¨μ–΄μ˜ 연결뢀에 μ‚¬μš©ν•œλ‹€.
  • μ½”λ“œλ‚΄μ—μ„œ 반볡적으둜 μ‚¬μš©λ  값을 μƒμˆ˜λ‘œ μ§€μ •ν•΄λ†“μœΌλ©΄ νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€.