μžλŠ” 씨앗
  • λΆ„λ₯˜ 전체보기
    • 🐣 기초 κ°œλ…
    • πŸ“Ž 유튜브
    • πŸ’Ύ 쑰각λͺ¨μŒ
    • πŸ‘©‍πŸ’» Error
    • ❄ React
    • πŸ₯Python
    • πŸ€ Spring
    • πŸ₯ž JS
    • πŸ‹ Docker
    • 🧭 WSO2
    • 🐧 Linux
    • πŸ”— SQL
    • 🐒 C#
    • πŸ“‘ 읽을거리
    • πŸ‘€μ§ˆλ¬Έλ“€
    • πŸ‘©‍πŸ’» κ΅­λΉ„ μˆ˜μ—…
      • Java μžλ°”
      • Oracle 였라클
      • JDBC
      • HTML & CSS
      • JavaScript
      • JSP
      • Servlet
      • Spring
      • MyBatis
    • πŸ“• 개발 혼곡
      • μžλ°”μ˜ 정석
      • μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ°
hELLO Β· Designed By μ •μƒμš°.
μžλŠ” 씨앗

🌱

πŸ‘©‍πŸ’» κ΅­λΉ„ μˆ˜μ—…/Java μžλ°”

1202 κ΅­λΉ„ μˆ˜μ—… λ³€μˆ˜, κΈ°λ³Έν˜• λ°μ΄ν„°ν˜•, ν˜• λͺ…μ‹œ, 문자 μ§‘ν•©

2022. 12. 5. 23:37

λ³€μˆ˜μ˜ 의의, μ’…λ₯˜, μ‚¬μš©λ²• 및 κΈ°λ³Έν˜• λ°μ΄ν„°ν˜•, ν˜• λͺ…μ‹œ, 문자 집합에 λŒ€ν•΄ μ •λ¦¬ν•œλ‹€.

 

λ³€μˆ˜ ( Variable )

  - λ³€ν•˜λŠ” 수 (cf. μƒμˆ˜: λ°”λ€Œμ§€ μ•ŠλŠ” 수)
  - ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©λ  값을 λ©”λͺ¨λ¦¬μ— μΌμ‹œμ μœΌλ‘œ μ €μž₯ν•˜κ³ (λž¨μ— 올라감, νœ˜λ°œμ„±), ν•„μš”ν•œ κ³³μ—μ„œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ μž‘μ„±
  - 가독성 ν–₯상 (μƒμˆ˜(κ°’)에 λŒ€ν•΄ 별λͺ…을 λΆ€μ—¬ν•˜κΈ° λ•Œλ¬Έμ— ) - 이름을 잘λͺ» μ„€μ •ν•˜λ©΄ 가독성이 떨어짐
  - 데이터 ν˜•μ„ μ‚¬μš©ν•˜μ—¬ μ„ μ–Έ (κΈ°λ³Έν˜• 8κ°€μ§€ / μ°Έμ‘°ν˜• - class, String, array)

  -μ„ μ–Έλœ λ°μ΄ν„°ν˜•μ— 따라 μ €μž₯λ˜λŠ” 값이 닀름

  -κ°’ 할당을 μ›ν•˜λŠ” λŒ€λ‘œ μ—¬λŸ¬ 번 ν•  수 있음, κ°’ ν• λ‹Ή μ‹œ 이전 값이 사라지고 μƒˆλ‘œμš΄ 값이 μ €μž₯됨

  -동일 μ˜μ—­μ—μ„œλŠ” 같은 μ΄λ¦„μ˜ λ³€μˆ˜λ₯Ό ν•˜λ‚˜λ§Œ μ„ μ–Έν•  수 있음 (λ°μ΄ν„°ν˜•κ³Ό κ΄€λ ¨ 없이 이름 κ°™μœΌλ©΄ μ—λŸ¬)
 - κ°’ 할당이 λ˜μ§€ μ•Šμ€ λ³€μˆ˜λŠ” μ‚¬μš© μ‹œ error λ°œμƒ


  - instance(멀버) variable, static(클래슀) variable, local variable 3κ°€μ§€λ₯Ό 제곡
  - μ„ μ–Έν•˜λŠ” μ˜μ—­μ— 따라 ꡬ뢄됨

class 클래슀λͺ… {

	int i; // μΈμŠ€ν„΄μŠ€ λ³€μˆ˜
    static int j; // static λ³€μˆ˜

	public static void main(String[] args) {
    	int i; //μ§€μ—­ λ³€μˆ˜
    	} // local : λ³€μˆ˜, μ½”λ“œ(μ—°μ‚°,μ œμ–΄) μž‘μ„±, λ©”μ„œλ“œ μ˜μ—­

} // class field: λ³€μˆ˜, λ©”μ„œλ“œλ₯Ό μ •μ˜ν•¨


/*
- 동일 μ˜μ—­ λ‚΄μ—μ„œλŠ” 같은 μ΄λ¦„μ˜ λ³€μˆ˜λŠ” ν•˜λ‚˜λ§Œ μ„ μ–Έν•  수 μžˆλ‹€.
- λ‹€λ₯Έ μ˜μ—­μΌ λ•Œμ—λŠ” 같은 μ΄λ¦„μ˜ λ³€μˆ˜ μ„ μ–Έ κ°€λŠ₯ (μΈμŠ€ν„΄μŠ€ λ³€μˆ˜/ μ§€μ—­ λ³€μˆ˜)
*/

 

-λ³€μˆ˜λŠ” μ„ μ–Έ > κ°’ ν• λ‹Ή > κ°’ μ‚¬μš©(좜λ ₯, μž¬ν• λ‹Ή, 연산에 μ°Έμ—¬) μˆœμ„œλ‘œ μ‚¬μš©λ¨

μ‚¬μš© μ•ˆ ν•  λ³€μˆ˜λŠ” λ§Œλ“€μ§€ μ•ŠλŠ”λ‹€ (λ©”λͺ¨λ¦¬ λ‚­λΉ„)

 

 


μ§€μ—­ λ³€μˆ˜ (Local Variable)

 - method μ•ˆμ— μ„ μ–Έλ˜κ³ , λ©”μ„œλ“œ μ•ˆμ—μ„œλ§Œ μ‚¬μš©λ˜λŠ” λ³€μˆ˜ ( method λ°–μ—μ„œλŠ” μ‚¬μš©ν•  수 μ—†μŒ)
 -λͺ¨λ“  데이터 ν˜•μ„ μ‚¬μš©ν•˜μ—¬ μ„ μ–Έ κ°€λŠ₯ (κΈ°λ³Έν˜•, μ°Έμ‘°ν˜•)
 -μžλ™ μ΄ˆκΈ°ν™”κ°€ λ˜μ§€ μ•ŠμŒ (μ΄ˆκΈ°ν™”λ˜μ§€ μ•Šμ€ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ μ—λŸ¬ λ°œμƒ)
 -μ„ μ–Έλœ λ³€μˆ˜λŠ” μƒμˆ˜ 값을 μ €μž₯ (literal의 값을 λ³€μˆ˜ stack에 μ €μž₯)

 -λ©”μ„œλ“œ 호좜 μ‹œ memory에 load 되고 호좜이 λλ‚˜λ©΄ memoryμ—μ„œ unload 됨

 

  

-λ³€μˆ˜μ˜ μ΄ˆκΈ°ν™” : μ„ μ–Έν•  λ•Œ 값을 ν• λ‹Ήν•˜λŠ” 것
 λ¬Έλ²•) λ°μ΄ν„°ν˜• λ³€μˆ˜λͺ…=μ΄ˆκΈ°ν™”κ°’; // default value: λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄μ„œ μž…λ ₯ν•˜λŠ”/λ„£μ–΄μ£ΌλŠ” κ°’
           int i=0; // μ΄ˆκΈ°ν™” 값은 연산이 λ˜λ”λΌλ„ 영ν–₯을 λΌμΉ˜μ§€ μ•ŠλŠ” 값을 λ„£μ–΄μ€€λ‹€.

                   

     

 λ³€μˆ˜ μ‚¬μš©λ²•)

   1. μ„ μ–Έ: 데이터 ν˜•μ— μΌμΉ˜ν•˜λŠ” 값을 μ €μž₯ν•  곡간에 이름을 λΆ™μ—¬ λ§Œλ“œλŠ” 것
      λ°μ΄ν„°ν˜• λ³€μˆ˜λͺ…;
      int i;
    
    2. κ°’ ν• λ‹Ή: μ„ μ–Έλœ 곡간에 μ‚¬μš©ν•  값을 λ„£λŠ” 것
      λ³€μˆ˜λͺ…=κ°’;
       i=10;

    3.κ°’ μ‚¬μš© ( 좜λ ₯, μ—°μ‚° μ°Έμ—¬, λ‹€λ₯Έ λ³€μˆ˜μ— μž¬ν• λ‹Ή )
     -좜λ ₯: System.out.println( λ³€μˆ˜λͺ… );
                System.out.println( i );
     -μ—°μ‚°: μƒμˆ˜+λ³€μˆ˜,  λ³€μˆ˜+λ³€μˆ˜
     -μž¬ν• λ‹Ή:  λ³€μˆ˜λͺ…=λ³€μˆ˜λͺ…;

 

 


λ°μ΄ν„°ν˜•

- 값을 μ €μž₯ν•˜κΈ° μœ„ν•΄ κ°’μ˜ μ’…λ₯˜λ³„λ‘œ 미리 μ˜ˆμ•½ν•΄λ‘” λ©”λͺ¨λ¦¬ 곡간
- λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μ‚¬μš©
- κΈ°λ³Έν˜• 데이터 ν˜•, μ°Έμ‘°ν˜• 데이터 ν˜•μœΌλ‘œ ꡬ뢄함

  κΈ°λ³Έν˜• λ°μ΄ν„°ν˜•: λ³€μˆ˜μ— 값을 직접 μ €μž₯ / byte, short, int, long (μ •μˆ˜), float, double(μ‹€μˆ˜), char (문자), boolean

  μ°Έμ‘°ν˜• λ°μ΄ν„°ν˜•: λ³€μˆ˜μ— μ£Όμ†Œλ₯Ό μ €μž₯ / class, array, String

- μƒμˆ˜κ°€ μ €μž₯λ˜λŠ” λ©”λͺ¨λ¦¬ 곡간: literal, λ¦¬ν„°λŸ΄μ— μžˆλŠ” 값을 λ³€μˆ˜μ— μ €μž₯함

 

 

κΈ°λ³Έν˜• λ°μ΄ν„°ν˜• (primitive type)

- λ³€μˆ˜μ— literal의 값을 직접 μ €μž₯ν•˜λŠ” λ°μ΄ν„°ν˜•

κΈ°λ³Έν˜•μœΌλ‘œ λ³€μˆ˜λ₯Ό λ§Œλ“€λ©΄ 값이 직접 λ“€μ–΄κ°„λ‹€

κ°’μ˜ μ’…λ₯˜ λ°μ΄ν„°ν˜• 크기(byte) λ²”μœ„(range) μ‚¬μš© 예
μ •μˆ˜ byte 1 -128 ~ 127  byte b =10;
short 2 -32768 ~ 32767 short s = 10;
int 4 -2147483648 ~ 2147483647
(μ•½ 20μ–΅)
int i = 10;
long 8 -2^63 ~ (2^63)-1 long l =10;
long l1 = intμ΄ˆκ³Όν•˜λŠ”κ°’L;
(ν˜•λͺ…μ‹œ ν•„μˆ˜, λ¦¬ν„°λŸ΄ ν™•μž₯)
μ‹€μˆ˜ float 4 유효 μ—°μ‚° 7자리 float f = 3.14f;
(ν˜•λͺ…μ‹œ ν•„μˆ˜, λ¦¬ν„°λŸ΄ 크기 μΆ•μ†Œ)
double 8 유효 μ—°μ‚° 15자리 (μ„Έλ°€ν•œ μ—°μ‚° κ°€λŠ₯) double d = 3.14;
(ν˜•λͺ…μ‹œ μƒλž΅ κ°€λŠ₯)
double d1 = 3.14D;
문자 char 2 '둜 λ¬Άμ—¬μ§„ 영문자, 숫자, ν•œκΈ€μ˜ μœ λ‹ˆμ½”λ“œ 값을 μ €μž₯ char c = 'A';
문자의 μœ λ‹ˆμ½”λ“œκ°’μ„ c에 μ €μž₯
뢈린 boolean 1 true, false μ €μž₯ boolean b = true;
boolean b1 = false;

 


ν˜• λͺ…μ‹œ

literal의 크기λ₯Ό μΌμ‹œμ μœΌλ‘œ λ³€κ²½ν•˜λŠ” 것

L은 늘리기, FλŠ” 쀄이기

  
  μ •μˆ˜ : 
    -μ •μˆ˜ literal은 4byteκ°€ κΈ°λ³Έ 크기 / L,l을 μ •μˆ˜ μƒμˆ˜ 뒀에 λΆ™μ—¬ λ¦¬ν„°λŸ΄μ˜ 크기λ₯Ό 8byte둜 λ³€κ²½ κ°€λŠ₯
    -μ •μˆ˜ μƒμˆ˜ 값이 int의 λ²”μœ„λΌλ©΄ μƒλž΅ κ°€λŠ₯ (int λ²”μœ„ 초과 μ‹œ λΆ™μ—¬μ•Ό 함)

 

   long l=10; // int의 λ²”μœ„μ΄λ―€λ‘œ μƒλž΅ κ°€λŠ₯
   long l1=2147483648L;// int의 λ²”μœ„λ₯Ό μ΄ˆκ³Όν–ˆμœΌλ‘œ L λͺ…μ‹œ

 

  μ‹€μˆ˜ : 
     -μ‹€μˆ˜ literal의 8byteκ°€ κΈ°λ³Έ 크기 / F,fλ₯Ό μ‹€μˆ˜ μƒμˆ˜ 뒀에 λΆ™μ—¬ λ¦¬ν„°λŸ΄μ˜ 크기λ₯Ό 4byte둜 λ³€κ²½ κ°€λŠ₯ (크기 쀄이기)
     -D,dλŠ” μƒλž΅ κ°€λŠ₯, λ¦¬ν„°λŸ΄μ˜ 크기λ₯Ό 8byte둜 μœ μ§€

float f=3.14F; // fκ°€ λΆ™μ–΄ 4byte둜 쀄어듀고, 4byte둜 μΆ•μ†Œλœ 값이 f에 μ €μž₯됨
double d=3.14D; // dλŠ” μƒλž΅ κ°€λŠ₯, μ‹€μˆ˜ λ¦¬ν„°λŸ΄μ˜ 크기 8byteλ₯Ό μœ μ§€

 

float f = 0.1234567; 유효 μ—°μ‚° 7자리

double d = 0.123456789101112131415; 유효 μ—°μ‚° 15자리, 맀우 μ„Έλ°€ν•œ μ—°μ‚° κ°€λŠ₯, μ—°μ‚° 였λ₯˜ 없이 μ •ν™•νžˆ 연산됨


charset (λ¬Έμžμ§‘ν•©)

- λ¬Έμžν‘œ

8bit 문자 μ§‘ν•© => ν•œκΈ€μ΄ μ—†λ‹€ ( ASCII code ) / μ €μž₯κ³΅κ°„μ˜ ν˜‘μ†Œν•¨

16bit 문자 μ§‘ν•© => ν•œκΈ€μ΄ μžˆλ‹€ ( Unicode ) / μžλ°”λŠ” 16bit μ–Έμ–΄

μ•„μŠ€ν‚€μ½”λ“œ: 0~255 문자 μ €μž₯됨 - μ˜μ–΄ λŒ€, μ†Œλ¬Έμž, 특수문자 λ“±

μœ λ‹ˆμ½”λ“œ: 0~65535 문자 μ €μž₯ κ°€λŠ₯ (ν•œκΈ€, λ§Žμ€ κ°’ μ €μž₯ κ°€λŠ₯)

 

0 - 48 

9 - 57

A - 65

Z - 90

a - 97

z - 122

 

char c = 'A'; // 문자 'A'κ°€ μ•„λ‹Œ A의 μœ λ‹ˆμ½”λ“œ κ°’ 65(μ •μˆ˜)κ°€ c에 μ €μž₯됨     

 

 

 

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'πŸ‘©β€πŸ’» κ΅­λΉ„ μˆ˜μ—… > Java μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

1205 κ΅­λΉ„ μˆ˜μ—… μžλ°” μƒμˆ˜λž€? μƒμˆ˜μ˜ μž‘μ„± 및 μ‚¬μš©λ²•  (0) 2022.12.11
1205~1206 κ΅­λΉ„ μˆ˜μ—… μžλ°” μ—°μ‚°μž (μ΅œμš°μ„  단항 μ‚°μˆ  μ‰¬ν”„νŠΈ 관계 논리 μ‚Όν•­ λŒ€μž…)  (0) 2022.12.11
1205 κ΅­λΉ„ μˆ˜μ—… μžλ°” 2μ§„μˆ˜ λ³€ν™˜ 음수 ν‘œν˜„ 1의 보수 2의 보수  (1) 2022.12.11
1201 κ΅­λΉ„ μˆ˜μ—… μ½”λ”©μ΄λž€? μžλ°”μ˜ μ½”λ”© μˆœμ„œμ™€ μ†ŒμŠ€μ½”λ“œ μž‘μ„±λ²•  (0) 2022.12.05
μžλ°” 곡뢀할 λ‚΄μš© μ •λ¦¬ν‘œ  (0) 2022.12.04
    'πŸ‘©‍πŸ’» κ΅­λΉ„ μˆ˜μ—…/Java μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • 1205~1206 κ΅­λΉ„ μˆ˜μ—… μžλ°” μ—°μ‚°μž (μ΅œμš°μ„  단항 μ‚°μˆ  μ‰¬ν”„νŠΈ 관계 논리 μ‚Όν•­ λŒ€μž…)
    • 1205 κ΅­λΉ„ μˆ˜μ—… μžλ°” 2μ§„μˆ˜ λ³€ν™˜ 음수 ν‘œν˜„ 1의 보수 2의 보수
    • 1201 κ΅­λΉ„ μˆ˜μ—… μ½”λ”©μ΄λž€? μžλ°”μ˜ μ½”λ”© μˆœμ„œμ™€ μ†ŒμŠ€μ½”λ“œ μž‘μ„±λ²•
    • μžλ°” 곡뢀할 λ‚΄μš© μ •λ¦¬ν‘œ

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”