λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

TIL/Java

πŸ“š 12/28(λͺ©) 내일배움캠프 Java-Spring 5일차 TIL - java λ³€μˆ˜

πŸ“ μ˜€λŠ˜μ˜ ν•™μŠ΅ ν‚€μ›Œλ“œ

  • java λ³€μˆ˜

 

 

 

 

πŸ“ λ³€μˆ˜(Variable)λž€?

  • 'λ³€ν•  수 μžˆλŠ” 수' 이닀.
  • 값을 보관해두고 ν•„μš”ν•  λ•Œ 값을 κΊΌλ‚΄μ„œ 읽을 수 μžˆλŠ” μ €μž₯μ†Œ, 데이터λ₯Ό λ‹΄λŠ” 그릇이닀.
  • λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄ μ»΄ν“¨ν„°μ˜ λ©”λͺ¨λ¦¬ 곡간을 ν™•λ³΄ν•΄μ„œ κ·Έ 곳에 데이터λ₯Ό μ €μž₯ν•  수 μžˆλ‹€.

 

  μ„ μ–Έν•œ λ³€μˆ˜μ— 처음으둜 값을 λŒ€μž…ν•΄μ„œ μ €μž₯ν•˜λŠ” 것을 λ³€μˆ˜ μ΄ˆκΈ°ν™”λΌκ³  ν•œλ‹€.

public class Var1 {
	public static void main(String[] args) { 
		int a; //λ³€μˆ˜ μ„ μ–Έ
		a = 20; //λ³€μˆ˜ μ΄ˆκΈ°ν™”, μ •μˆ˜ a에 κ°’ 20을 μ €μž₯ν•œλ‹€.
	}
}

<λ³€μˆ˜λŠ” μ΄ˆκΈ°ν™”λ₯Ό κΌ­ ν•΄μ•Όν•œλ‹€.>

 

 

 

 

 

  λ³€μˆ˜λŠ” ν•˜λ‚˜μ”© μ„ μ–Έν•  μˆ˜λ„ 있고, ν•œλ²ˆμ— μ—¬λŸ¬ λ³€μˆ˜λ₯Ό μ„ μ–Έν•  μˆ˜λ„ μžˆλ‹€.

public class Var2 {
	public static void main(String[] args) { 
		int a; //λ³€μˆ˜λ₯Ό ν•˜λ‚˜μ”© μ„ μ–Έ
		int b; //λ³€μˆ˜λ₯Ό ν•˜λ‚˜μ”© μ„ μ–Έ
        
		int c, d; //ν•œλ²ˆμ— μ—¬λŸ¬ λ³€μˆ˜λ₯Ό μ„ μ–Έ
	}
}

<각 각의 λ©”λͺ¨λ¦¬ 곡간이 생긴닀.>

 

 

 

 

 

  λ³€μˆ˜μ˜ μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”λ₯Ό 각각 λ”°λ‘œ ν•  μˆ˜λ„, λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄μ„œ λ™μ‹œμ— μ΄ˆκΈ°ν™” ν•  수 μžˆλ‹€.

public class Var5 {
	public static void main(String[] args) { 
    	//1. λ³€μˆ˜ μ„ μ–Έ, μ΄ˆκΈ°ν™” 각각 λ”°λ‘œ
		int a;
		a = 1;
        
		int b = 2; //2. λ³€μˆ˜ μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”λ₯Ό ν•œλ²ˆμ—
		int c = 3, d = 4; //3. μ—¬λŸ¬ λ³€μˆ˜ μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”λ₯Ό ν•œλ²ˆμ—
    }
}

 

 

 

 

 βš οΈ λ³€μˆ˜ μ΄ˆκΈ°ν™”λ₯Ό κΌ­ ν•΄μ•Όν•˜λŠ” 이유

λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™”ν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•˜λŠ” 경우, 컴파일 μ—λŸ¬(였λ₯˜)κ°€ λ‚˜κ³  싀행이 λ˜μ§€ μ•ŠλŠ”λ‹€.

μ»΄ν“¨ν„°μ—μ„œ λ©”λͺ¨λ¦¬λŠ” μ—¬λŸ¬ μ‹œμŠ€ν…œμ΄ 함꼐 μ‚¬μš©ν•˜λŠ” 곡간이기 λ•Œλ¬Έμ— μ–΄λ– ν•œ 값듀이 계속 μ €μž₯λœλ‹€.
λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄ λ©”λͺ¨λ¦¬μƒμ˜ μ–΄λ–€ 곡간을 μ°¨μ§€ν•˜κ³  μ‚¬μš©ν•˜λŠ”λ° κ·Έ 곡간에 기쑴에 μ–΄λ–€ 값이 μžˆμ—ˆλŠ”μ§€ 아무도 λͺ¨λ₯Έλ‹€.
λ”°λΌμ„œ, μ΄ˆκΈ°ν™”λ₯Ό ν•˜μ§€ μ•ŠμœΌλ©΄ μ΄μƒν•œ 값이 좜λ ₯될 수 μžˆλ‹€. 이런 문제λ₯Ό μ˜ˆλ°©ν•˜κΈ° μœ„ν•΄ μžλ°”λŠ” λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™” ν•˜λ„λ‘ κ°•μ œν•œλ‹€.

 

 

 

 

 

πŸ“ λ³€μˆ˜μ˜ 데이터 νƒ€μž… 1- κΈ°λ³Έ(Primitive) νƒ€μž…

  • μ •μˆ˜ν˜•
    • byte

      -128 ~ 127 (1byte, 2^8)

    • char

      문자 ν•˜λ‚˜(2byte). μž‘μ€λ”°μ˜΄ν‘œ(' ')λ₯Ό μ‚¬μš©ν•œλ‹€.

    • short

      -32,768 ~ 32,767 (2byte, 2^16)

    • int

      -2,147,483,648 ~ 2,147,483,647 (μ•½ 20μ–΅) (4byte, 2^32)

    • long

      -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (8byte, 2^64)

       

  • μ‹€μˆ˜ν˜•
    • float

      λŒ€λž΅ -3.4E38 ~ 3.4E38, 7자리 정밀도 (4byte, 2^32)

    • double

      λŒ€λž΅ -1.7E308 ~ 1.7E308, 15자리 정밀도 (8byte, 2^64)

       

  • λ…Όλ¦¬ν˜•
    • boolean

      μ°Έκ³Ό 거짓을 νŒλ‹¨ν•˜λŠ” κ³³μ—μ„œ μ‚¬μš©ν•œλ‹€. 'true' , 'false' κ°’λ§Œ μ‚¬μš©ν•  수 μžˆλ‹€.

 

  λ©”λͺ¨λ¦¬λ₯Ό 적게 μ‚¬μš©ν•˜λ©΄ μž‘μ€ 숫자λ₯Ό ν‘œν˜„ν•  수 있고, λ©”λͺ¨λ¦¬λ₯Ό 많이 μ‚¬μš©ν•˜λ©΄ 큰 숫자λ₯Ό ν‘œν˜„ν•  수 μžˆλ‹€. λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄ ν‘œν˜„ λ²”μœ„μ— 따라 λ©”λͺ¨λ¦¬ 곡간을 μ°¨μ§€ν•œλ‹€. κ·Έλž˜μ„œ ν•„μš”μ— λ§žλ„λ‘ λ‹€μ–‘ν•œ νƒ€μž…μ„ μ œκ³΅ν•œλ‹€.

public class Var8 {
	public static void main(String[] args) { //μ •μˆ˜
		byte b = 127; //-128 ~ 127
		short s = 32767; // -32,768 ~ 32,767
		int i = 2147483647; //-2,147,483,648 ~ 2,147,483,647 (μ•½ 20μ–΅)
        
        	 //-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
         	long l = 9223372036854775807L; //λŒ€λ¬Έμž L둜 μ μ–΄μ£ΌλŠ” 것이 μ’‹λ‹€.
         
		//μ‹€μˆ˜
		float f = 10.0f; double d = 10.0;
	} 
}

 

 

 

 

 

πŸ“ λ³€μˆ˜μ˜ 데이터 νƒ€μž…2 - μ°Έμ‘°ν˜•(Reference) νƒ€μž…

  • String: λ¬Έμžμ—΄μ„ 닀룬닀. ν°λ”°μ˜΄ν‘œ(" ")λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. 예) "hello java"
  • μ°Έμ‘°ν˜• 데이터 νƒ€μž…μ€ μœ„μ˜ κΈ°λ³Έν˜•μ„ μ œμ™Έν•œ λ‚˜λ¨Έμ§€λ₯Ό λ§ν•œλ‹€.
  • 기본적으둜 μ œκ³΅ν•˜λŠ” 클래슀, ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 슀슀둜 λ§Œλ“  클래슀, λ°°μ—΄ νƒ€μž… 등을 λͺ¨λ‘ μ°Έμ‘°ν˜•μ΄λΌκ³  ν•œλ‹€. 

 

 

 

 

πŸ“ λ¦¬ν„°λŸ΄(literal)

  μ½”λ“œμ—μ„œ κ°œλ°œμžκ°€ 직접 적은 κ³ μ •λœ 값을 ν”„λ‘œκ·Έλž˜λ° μš©μ–΄λ‘œ λ¦¬ν„°λŸ΄μ΄λΌ ν•œλ‹€.

int a = 100; //μ •μˆ˜ λ¦¬ν„°λŸ΄
double b = 10.5; //μ‹€μˆ˜ λ¦¬ν„°λŸ΄
boolean c = true; //λΆˆλ¦¬μ–Έ λ¦¬ν„°λŸ΄
char d = 'A'; //문자 ν•˜λ‚˜ λ¦¬ν„°λŸ΄
String e = "Hello Java"; //λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄

<λ³€μˆ˜μ˜ 값은 λ³€ν•  수 μžˆμ§€λ§Œ λ¦¬ν„°λŸ΄ μžμ²΄λŠ” λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€.>

 

 

 

 

πŸ“ λ³€μˆ˜ λͺ…λͺ…κ·œμΉ™

  • κ·œμΉ™
    • λ³€μˆ˜ 이름은 숫자둜 μ‹œμž‘ν•  수 μ—†λ‹€. 숫자λ₯Ό 포함할 μˆ˜λŠ” μžˆλ‹€.
    • 곡백이 λ“€μ–΄κ°ˆ 수 μ—†λ‹€.
    • μžλ°”μ˜ μ˜ˆμ•½μ–΄λ₯Ό λ³€μˆ˜ μ΄λ¦„μœΌλ‘œ μ‚¬μš©ν•  수 μ—†λ‹€.
    • λ³€μˆ˜ μ΄λ¦„μ—λŠ” 영문자, 숫자, $, _만 μ‚¬μš©ν•  수 μžˆλ‹€.

 

  • κ΄€λ‘€
    • μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•˜λŠ” 낙타 ν‘œκΈ°λ²•(camel case). 예) firstNme

 

 

 

 

πŸ“ μžλ°” μ–Έμ–΄μ˜ κ΄€λ‘€

  • ν΄λž˜μŠ€λŠ” λŒ€λ¬Έμžλ‘œ μ‹œμž‘, νŒ¨ν‚€μ§€λ‚˜ λ‚˜λ¨Έμ§€λŠ” μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•œλ‹€.
  • μƒμˆ˜λŠ” λͺ¨λ‘ λŒ€λ¬Έμžλ₯Ό μ‚¬μš©ν•˜κ³  μ–Έλ”λ°”λ‘œ κ΅¬λΆ„ν•œλ‹€.
  • λ³€μˆ˜ 이름은 의미있고, κ·Έ μš©λ„λ₯Ό λͺ…ν™•ν•˜κ²Œ μ„€λͺ…ν•΄μ•Ό ν•œλ‹€.