Java programming

(22.10.08)Java ํ•™์Šต ์ •๋ฆฌ: ์ž๋ฐ” ๋ฐ์ดํ„ฐ ํƒ€์ž…(๊ธฐ๋ณธ ํƒ€์ž…, ์ฐธ์กฐ ํƒ€์ž…)๊ณผ ์—ฐ์‚ฐ์ž์™€ ์ œ์–ด๋ฌธ( ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ)

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2022. 10. 9.

Java๋Š” ๋Œ€ํ‘œ์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.

 

์ž๋ฐ”์˜ ํŠน์ง•์œผ๋กœ๋Š”

โ‘ ๊ตฌ๋ฌธ์ด ๊ฐ„๊ฒฐํ•˜๋‹ค. ํฌ์ธํ„ฐ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์—†์•ฐ์œผ๋กœ์จ C++์—์„œ ์ฃผ๋กœ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฌธ์ œ๊ฐ€ ๋Œ€ํญ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

โ‘ก๋ช…๋ฃŒํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์ด๋‹ค.

โ‘ข์ด์‹์„ฑ์ด ๋†’์œผ๋ฉฐ ๊ธฐ๊ณ„์— ์ค‘๋ฆฝ์ ์ด๋‹ค. ํ•œ๋ฒˆ ์ž‘์„ฑํ•œ Java๋Š” ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ์—์„œ ๋™์ž‘ํ•œ๋‹ค. ์ด๊ฒƒ์€ JVM(Java Virutal Machine)์ด๋ผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์— ์˜ํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โ‘ฃ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค.

โ‘ค๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ(multi - thread) ์–ธ์–ด์ด๋‹ค.

 

๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํ˜•์‹

Java์—์„œ ์“ฐ์ด๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ํฌ๊ฒŒ ๊ธฐ๋ณธ ํƒ€์ž…(์›์‹œ ํƒ€์ž…: primitive type)๊ณผ ์ฐธ์กฐ ํƒ€์ž…(referene type)์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค. ๊ธฐ๋ณธํƒ€์ž…์ด๋ž€ ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž, ๋…ผ๋ฆฌ ๋ฆฌํ„ฐ๋Ÿด์„ ์ €์žฅํ•˜๋Š” ํƒ€์ž…์„ ๋งํ•œ๋‹ค. ์ฐธ์กฐ ํƒ€์ž…์ด๋ž€ ๊ฐ์ฒด(Object)์˜ ๋ฒˆ์ง€๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํƒ€์ž…์œผ๋กœ ๋ฐฐ์—ด, ์—ด๊ฑฐ, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์„ ๋งํ•œ๋‹ค.

 

 

java์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… (๊ธฐ๋ณธ ํƒ€์ž… + String Class)

๋ฐ์ดํ„ฐ ํ˜•์‹ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ํฌ๊ธฐ ์„ค๋ช…
๋ฌธ์žํ˜• String ์ฐธ์กฐํ˜• ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐํ˜•์ด ์•„๋‹Œ ์ž๋ฐ”์—์„œ ์ œ๊ณต๋˜๋Š” Class์ด๋‹ค. “ ”๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
char 2byte 16bit ๋ฌธ์žํ˜•์ด ์•„๋‹Œ ์ •์ˆ˜ํ˜•์ด์ง€๋งŒ ๋ฌธ์ž 1๊ฐ€์ง€๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์“ฐ์ธ๋‹ค. ‘ ’๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
์ •์ˆ˜ํ˜• byte 1byte 8bit -128 ~ 127๊นŒ์ง€๋ฅผ ์ž…๋ ฅ
short 2byte 16bit -32768 ~ 32767๊นŒ์ง€ ์ž…๋ ฅ
int 4byte 32bit ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… ์•ฝ-21์–ต ~์•ฝ21์–ต๊นŒ์ง€ ์ž…๋ ฅ
long 8byte 64bit ๋งค์šฐ ํฐ ์ •์ˆ˜๊นŒ์ง€ ์ž…๋ ฅ
์‹ค์ˆ˜ํ˜• float 4byte 32bit ์†Œ์ˆ˜์ ์ด ์žˆ๋Š” ์‹ค์ˆ˜๋ฅผ ์ž…๋ ฅ
double 8byte 64bit ์‹ค์ˆ˜๋ฅผ ์ž…๋ ฅ float๋ณด๋‹ค ์ •๋ฐ€๋„๊ฐ€ ๋†’๋‹ค
๋…ผ๋ฆฌํ˜• boolean 1byte 8bit true ๋˜๋Š” false๋ฅผ ์ž…๋ ฅ
 
 
 
 
 
 
๐Ÿ’ก int ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋น„ํŠธ ํฌ๊ธฐ๋Š” 2^32 ์ธ๋ฐ ์™œ 2^31์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ฒŒ ๋ ๊นŒ?
       
   
  โœ”๏ธ์ด์œ ๋Š” ๋ฐ”๋กœ ๋งจ ์•ž ๋น„ํŠธ๋Š” ๋ถ€ํ˜ธ ๋น„ํŠธ๋กœ์จ ์“ฐ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
 
 
 

 

byte์™€ short

  • byte : 1๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ์ž๋ฃŒํ˜• ๋™์˜์ƒ, ์Œ์•… ํŒŒ์ผ, ์‹คํ–‰ ํŒŒ์ผ์˜ ์ž๋ฃŒ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ
  • short: 2๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ์ž๋ฃŒํ˜• C/C++ ์–ธ์–ด์™€ ํ˜ธํ™˜ ์‹œ ์‚ฌ์šฉ

int

  • ์ž๋ฐ”์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ •์ˆ˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ž๋ฃŒ ํ˜•
  • 4๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ์ž๋ฃŒํ˜•
  • ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ˆซ์ž(๋ฆฌํ„ฐ๋Ÿด)์€ int ๋กœ ์ €์žฅ๋จ
  • 32 ๋น„ํŠธ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ์ˆซ์ž๋Š” long ์ž๋ฃŒํ˜•์œผ๋กœ ์ฒ˜๋ฆฌ

long

  • 8๋ฐ”์ดํŠธ ์ž๋ฃŒํ˜•
  • ์ˆซ์ž์˜ ๋’ค์— ์•ŒํŒŒ๋ฒณ L ๋˜๋Š” l ์„ ์จ์„œ long ํ˜•์ž„์„ ํ‘œ์‹œ ํ•จ
  • ์˜ˆ) int num = 12345678900; // ์˜ค๋ฅ˜
    long lnum = 12345678900; //์˜ค๋ฅ˜
    long lnumber = 12345678900L; // ok

 

์‹ค์ˆ˜ ํ‘œํ˜„ ๋ฐฉ์‹

- ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐฉ์‹

  • ์‹ค์ˆ˜๋Š” ์ •์ˆ˜ ๋ณด๋‹ค ์ •๋ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •์ˆ˜์™€๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•ด์•ผ ํ•จ
  • ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐฉ์‹์œผ๋กœ ์‹ค์ˆ˜ ๊ฐ’ 0.1 ํ‘œํ˜„
  • ์ง€์ˆ˜๋ถ€์™€ ๊ฐ€์ˆ˜๋ถ€๋กœ ํ‘œํ˜„ ํ•จ
  • ์ปดํ“จํ„ฐ์—์„œ๋Š” ๋ฐ‘์ˆ˜๋ฅผ 2๋กœ ์‚ฌ์šฉ
  • ์ •๊ทœํ™” : ๊ฐ€์ˆ˜๊ฐ€ ๋ฐ‘์ˆ˜๋ณด๋‹ค ์ž‘์€ ํ•œ ์ž๋ฆฌ๊นŒ์ง€ ๊ฐ€์ˆ˜๋กœ ํ‘œํ˜„ ๋˜๋Š” ๊ฒƒ
  • ์ปดํ“จํ„ฐ์—์„œ๋Š” ๋ฐ‘์ˆ˜๊ฐ€ 2 ์ด๋ฏ€๋กœ ์ •๊ทœํ™”๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ€์ˆ˜๋ถ€๋ถ„์˜ ์ฒซ ๋ฒˆ์งธ ์ž๋ฆฌ ์ˆซ์ž๋Š” ํ•ญ์ƒ 1์ž„
    ์˜ˆ) 0.2 ํ‘œํ˜„ 0.4 X 2^-1 ์ •๊ทœํ™” ํ•˜๋ฉด 1.6 X 2^-3     ์ปดํ“จํ„ฐ์—์„œ ๋ชจ๋“  ์‹ค์ˆ˜๋Š” 1.mX 2^-n ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

- floatํ˜•๊ณผ doubleํ˜•

์ž๋ฐ”์—์„œ ๋ชจ๋“  ์‹ค์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด ๋“ค์€ dobule๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

์ž๋ฐ”์—์„œ๋Š” ์‹ค์ˆ˜์˜ ๊ธฐ๋ณธ ํƒ€์ž…์€ dobule์„ ์‚ฌ์šฉ ํ•จ

 
 

- ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐฉ์‹์˜ ์˜ค๋ฅ˜

์ง€์ˆ˜์™€ ๊ฐ€์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐฉ์‹์—์„œ๋Š” ์ง€์ˆ˜๋ถ€๊ฐ€ 0์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„์˜ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค

public class DoubleTest2 {

	public static void main(String[] args) {

		double dnum = 1;
		
		for(int i = 0; i<10000; i++) {
			dnum = dnum + 0.1;
		}
		System.out.println(dnum);
	}
}
 
์ถœ๋ ฅ ๊ฒฐ๊ณผ
๋’ค์— ์ด์ƒํ•œ ์†Œ์ˆ˜์  ์ˆซ์ž๋“ค์ด ์ƒ๊น€ (์ง€์ˆ˜๋ถ€๊ฐ€ 0์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ)
 
 
 
 

 


์ž๋ฃŒํ˜•(data type) - ๋ฌธ์ž๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋‚˜์š”?

- ๋ฌธ์ž๋„ ์ •์ˆ˜๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • ์–ด๋–ค ๋ฌธ์ž๋ฅผ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ • ์ •์ˆ˜ ๊ฐ’์„ ์ •์˜
  • A ๋Š” 65
  • ๋ฌธ์ž์„ธํŠธ : ๊ฐ ๋ฌธ์ž๋ฅผ ์–ผ๋งˆ๋กœ ํ‘œํ˜„ํ•  ๊ฒƒ์ธ์ง€ ์ฝ”๋“œ ๊ฐ’์„ ๋ชจ์•„๋‘” ๊ฒƒ์„ ๋ฌธ์ž์„ธํŠธ(charater set)๋ผ ํ•จ
    (ex. ASKII, euc-kr, utf-8, utf-16)

- ์ž๋ฐ”์—์„œ๋Š” ๋ฌธ์ž๊ฐ€ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„๋˜๋‚˜์š”?

  • ์ž๋ฐ”๋Š” ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์ „์„ธ๊ณ„ ํ‘œ์ค€์ธ UNICODE๋ฅผ ์‚ฌ์šฉ
  • utf-16 ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉ (๋ชจ๋“  ๋ฌธ์ž๋ฅผ 2๋ฐ”์ดํŠธ๋กœ ํ‘œ์‹œ)

- ๋ฌธ์žํ˜• ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ์‚ฌ์šฉํ•˜๊ธฐ

  • ๋ฌธ์ž๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž… char ch = 'A';
  • ๋ฌธ์ž๋Š” ' ' ๋กœ ํ‘œํ˜„ํ•˜๊ณ  " " ๋กœ ํ‘œํ˜„ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฌธ์ž์—ด์ด ๋œ๋‹ค. ์ด๊ฒƒ์€ ์—„์—ฐํžˆ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์ด๋‹ค.
  • ๋‚ด๋ถ€์ ์œผ๋กœ ์ˆซ์ž๋ฃŒ ํ‘œํ˜„๋˜๋ฏ€๋กœ ์ˆซ์ž๋ฅผ ๋„ฃ์–ด๋„ ๋ฌธ์ž๊ฐ€ ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ์Œ
  • char ch2 = 66;
  • ํ•˜์ง€๋งŒ ์Œ์ˆ˜๋Š” ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋‹ค.

public class CharacterTest {

	public static void main(String[] args) {

		char ch1 = 'A';
		System.out.println(ch1);
		System.out.println((int)ch1);
		
		char ch2 = 66;
		System.out.println(ch2);
		
		int ch3 = 67;
		System.out.println(ch3);
		System.out.println((char)ch3);
		
		//char ch4 = -66;  ์Œ์ˆ˜๋Š” ๋Œ€์ž… ํ•  ์ˆ˜ ์—†์Œ

    		char ch5 = 'ํ•œ';
		char ch6 = '\uD55C';
		
		System.out.println(ch5);
		System.out.println(ch6);
	}
}

์ฐธ๊ณ 

character set: ๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•œ ๊ฐ’์˜ ์„ธํŠธ

encoding: ๋ฌธ์ž๊ฐ€ ์ˆซ์ž๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฒƒ
decoding: ์ˆซ์ž์—์„œ ๋‹ค์‹œ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฒƒ

ASKII code: ์•ŒํŒŒ๋ฒณ๊ณผ ์ˆซ์ž ํŠน์ˆ˜ ๋ฌธ์ž๋“ฑ์„ 1๋ฐ”์ดํŠธ์— ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž์„ธํŠธ

UNICODE: ์ „ ์„ธ๊ณ„ ํ‘œ์ค€์œผ๋กœ ๋งŒ๋“  ๋ฌธ์ž ์„ธํŠธ

UTF-8: 1๋ฐ”์ดํŠธ์—์„œ 4๋ฐ”์ดํŠธ๊นŒ์ง€ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ

UTF-16: 2๋ฐ”์ดํŠธ๋กœ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„
 
 
 
 
 
 
 
 
 
๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „ ์ฒ˜์Œ์œผ๋กœ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ
 
์˜ˆ์‹œ)
int num = 123;

int  → ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ •์ˆ˜ํ˜•์ด๊ณ , 4byte ๊ณต๊ฐ„์— ์ €์žฅํ•  ๊ฑฐ๋ž€ ์˜๋ฏธ)

num  →  ์ž„์˜๋กœ ์ง€์€ ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ณด๋Š” ์‚ฌ๋žŒ์ด ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์ž‘๋ช…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

=  →  ํ• ๋‹น ์—ฐ์‚ฐ์ž(๋Œ€์ž… ์—ฐ์‚ฐ์ž)

123; → ๋ฆฌํ„ฐ๋Ÿด, ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น ํ•˜๊ณ  ์‹ถ์€ ์ž„์˜์˜ ๊ฐ’, ๋๋‚ ๋• ํ•ญ์ƒ ์„ธ๋ฏธ์ฝœ๋ก ; ์„ ๋ถ™์–ด์ค˜์•ผ ํ•œ๋‹ค.

 

์—ฐ์‚ฐ์ž

ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์‚ฐ์ถœํ•˜๋Š” ๊ฒƒ์„ ์—ฐ์‚ฐ(operations)์ด๋ผ๊ณ  ํ•œ๋‹ค.์—ฐ์‚ฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์‹œ๋‚˜ ๊ธฐํ˜ธ๋ฅผ ์—ฐ์‚ฐ์ž(operator)๋ผ๊ณ  ํ•˜๊ณ , ์—ฐ์‚ฐ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ํ”ผ์—ฐ์‚ฐ์ž๋ผ๊ณ  ํ•œ๋‹ค. ์—ฐ์‚ฐ์ž์™€ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์—ฐ์‚ฐ์˜ ๊ณผ์ •์„ ๊ธฐ์ˆ ํ•œ ๊ฒƒ์„ ์—ฐ์‚ฐ์‹(expressions)์ด๋ผ๊ณ  ํ•œ๋‹ค.

์—ฐ์‚ฐ์ž ์„ค๋ช…
+, -, *, /, % ์‚ฌ์น™์—ฐ์‚ฐ์ž๋กœ /์™€ % ๋ชจ๋‘ ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์ž์ง€๋งŒ /๋Š” ๋ชซ์„ %์€ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ๊ณ„์‚ฐํ•œ๋‹ค.
+, - ๋ถ€ํ˜ธ ์—ฐ์‚ฐ์ž๋กœ ๋ณ€์ˆ˜, ์ˆ˜,์‹ ์•ž์— ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค.
= ๋Œ€์ž…(ํ• ๋‹น)์—ฐ์‚ฐ์ž๋กœ ์˜ค๋ฅธ์ชฝ์„ ์™ผ์ชฝ์— ๋Œ€์ž…ํ•œ๋‹ค.
++, -- ์ฆ๊ฐ์—ฐ์‚ฐ์ž๋กœ 1์”ฉ ์ฆ๊ฐ€ ๋˜๋Š” ๊ฐ์†Œ์‹œํ‚จ๋‹ค.
==, !=, <, >, >=, <= ๋น„๊ต ์—ฐ์‚ฐ์ž๋กœ ๊ฒฐ๊ณผ๋Š” true ๋˜๋Š” false์ด๋ฉฐ, if๋ฌธ์ด๋‚˜ ๋ฐ˜๋ณต๋ฌธ์— ์ฃผ๋กœ ์“ฐ์ธ๋‹ค.
&&, || ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋กœ and ์™€ or๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
&, |,^, ~ ๋น„ํŠธ ์—ฐ์‚ฐ์ž๋กœ ๋น„ํŠธ ๋‹จ์œ„๋กœ and, or, exclusive or, not ์—ฐ์‚ฐ์„ ํ•œ๋‹ค.
<<, >> ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž๋กœ, ๋น„ํŠธ ๋‹จ์œ„๋กœ ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
+=,-=,*=, /=  ๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋กœ, 'a+=b' ๋Š” 'a=a+b'์™€ ๋™์ผํ•˜๋‹ค.
(๋ฐ์ดํ„ฐ ํ˜•์‹) ์บ์ŠคํŠธ(cast) ์—ฐ์‚ฐ์ž๋กœ, ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ๊ฐ•์ œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด int a = (int)3.5๋Š” doubleํ˜•์ธ 3.5 ๊ฐ’์„ intํ˜•์œผ๋กœ ๊ฐ•์ œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ a์— ๋Œ€์ž…ํ•œ๋‹ค. ๊ฒฐ๊ตญ a์— 3์ด ๋Œ€์ž…๋œ๋‹ค.

 

Java์˜ ์ œ์–ด๋ฌธ

์ œ์–ด๋ฌธ ์„ค๋ช…
์กฐ๊ฑด๋ฌธ if ๋ฌธ if-else๋ฌธ , ์ค‘์ฒฉ if ๋ฌธ ์œผ๋กœ ์“ธ์ˆ˜ ์žˆ๊ณ  true๋ฉด ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๊ณ  false๋ฉด else๋ธ”๋ก์ด ์‹คํ–‰๋œ๋‹ค.
switch ๋ฌธ case๋ฅผ ๋‚˜๋ˆ„์–ด ๋ณ€์ˆ˜๊ฐ€ ์–ด๋–ค ๊ฐ’์„ ๊ฐ–๋Š๋ƒ์— ๋”ฐ๋ผ ์‹คํ–‰๋ฌธ์ด ์„ ํƒ๋œ๋‹ค.
๋ฐ˜๋ณต๋ฌธ for๋ฌธ ( ; ; );๋กœ ์„นํ„ฐ๋ฅผ ๋‚˜๋ˆ„๊ณ  ๊ฐ ์„นํ„ฐ์—” boolean ํ‘œํ˜„์‹์ด ๋“ค์–ด์™€์•ผํ•œ๋‹ค.(๋นˆ์นธ ์ œ์™ธ)
์ฒซ๋ฒˆ์งธ ์„นํ„ฐ๋Š” ์ดˆ๊ธฐํ™”์‹, ๋‘๋ฒˆ์งธ ์„นํ„ฐ๋Š” ์กฐ๊ฑด์‹, ์„ธ๋ฒˆ์งธ ์„นํ„ฐ๋Š” ๋Œ€๋ถ€๋ถ„ ์ฆ๊ฐ์‹์ด ์˜จ๋‹ค.
while ๋ฌธ for๋ฌธ์ด ์ •ํ–‰์ง„ ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต์ด๋ผ๋ฉด, while๋ฌธ์€ ์กฐ๊ฑด์‹์ด true์ผ ๊ฒฝ์šฐ์— ๊ณ„์† ๋ฐ˜๋ณตํ•œ๋‹ค.
do-while๋ฌธ์€ ์กฐ๊ฑด์‹์„ ๋จผ์ € ๊ฒ€์‚ฌํ•˜๊ณ  ๋ธ”๋ก ๋‚ด๋ถ€๋ฅผ ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š”๊ฒŒ ์•„๋‹Œ, ์‹คํ–‰๋ฌธ์„ ์šฐ์„  ์‹คํ–‰ ์‹œํ‚ค๊ณ  ์‹คํ–‰ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ์„œ ๋ฐ˜๋ณต ์‹คํ–‰์„ ๊ณ„์†ํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.
๊ทธ ์™ธ break ๋ฌธ์€ ๋ฐ˜๋ณต๋ฌธ์„ ์‹คํ–‰ ์ค‘์ง€ํ•  ๋•Œ ์ด์šฉํ•œ๋‹ค. ๋˜ํ•œ ์ด์ „์— ํ•™์Šตํ•œ switch ๋ฌธ์—์„œ๋„ ์‹คํ–‰๋ฌธ์„ ์ข…๋ฃŒ์‹œํ‚ฌ์ˆ˜ ์žˆ๋‹ค.
continue ๋ฌธ์€ ๋ฐ˜๋ณต๋ฌธ์—๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ, continue ๋ฌธ์ด ์‹คํ–‰๋˜๋ฉด for๋ฌธ์˜ ์ฆ๊ฐ์‹ ๋˜๋Š” while, do-while๋ฌธ์˜ ์กฐ๊ฑด์‹์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

java์˜ ์ œ์–ด๋ฌธ ์ข…๋ฅ˜๋Š” ํฌ๊ฒŒ ์กฐ๊ฑด๋ฌธ(๋ถ„๊ธฐ๋ฌธ)๊ณผ ๋ฐ˜๋ณต๋ฌธ์ด ์žˆ๋‹ค. ์กฐ๊ฑด๋ฌธ์—๋Š” if๋ฌธ, switch๋ฌธ์ด ์žˆ๊ณ ,์กฐ๊ฑด์‹์—๋Š” true ๋˜๋Š” false ๊ฐ’์„ ์‚ฐ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์‹์ด๋‚˜, boolean ๋ณ€์ˆ˜๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์กฐ๊ฑด์‹์ด true๋ฉด ๋ธ”๋ก(์‹คํ–‰๋ฌธ)์„ ์‹คํ–‰ํ•˜๊ณ , false๋ฉด ๋ธ”๋ก์„ ์‹คํ–‰ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐ˜๋ณต๋ฌธ์—” for๋ฌธ, while๋ฌธ, do-while๋ฌธ์ด ์žˆ๋‹ค. ์ œ์–ด๋ฌธ ๋ธ”๋ก์ด ์‹คํ–‰ ์™„๋ฃŒ๋˜์—ˆ์„ ๊ฒฝ์šฐ ๋‹ค์‹œ ์ œ์–ด๋ฌธ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐˆ์ง€, ์•„๋‹ˆ๋ฉด ์ œ์–ด๋ฌธ ๋ธ”๋ก์„ ๋น ์ ธ๋‚˜์™€ ์ •์ƒํ๋ฆ„์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ฌ์ง€๋Š” ์–ด๋–ค ์ œ์–ด๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ ค์žˆ๋‹ค.

์กฐ๊ฑด๋ฌธ์ผ ๊ฒฝ์šฐ๋Š” ์ •์ƒํ๋ฆ„์œผ๋กœ ๋Œ์•„์˜ค์ง€๋งŒ, ๋ฐ˜๋ณต๋ฌธ์ผ ๊ฒฝ์šฐ๋Š” ์ œ์–ด๋ฌธ ์ฒ˜์Œ์œผ๋กœ ๋‹ค์‹œ ๋˜๋Œ์•„๊ฐ€ ๋ฐ˜๋ณต ์‹คํ–‰ํ•œ๋‹ค. ์ด๋ฅผ ๋ฃจํ•‘(looping)์ด๋ผ๊ณ ํ•œ๋‹ค.

 

์ฐธ์กฐ ํƒ€์ž…

๊ธฐ๋ณธ ํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์™€ ์ฐธ์กฐ ํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์˜ ์ฐจ์ด์ ์€ ์ €์žฅ๋˜๋Š” ๊ฐ’์ด ๋ฌด์—‡์ด๋ƒ์ด๋‹ค. ๊ธฐ๋ณธ ํƒ€์ž…์„ ์ด์šฉํ•ด์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์‹ค์ œ ๊ฐ’์„ ๋ณ€์ˆ˜์•ˆ์— ์ €์žฅํ•˜์ง€๋งŒ, ์ฐธ์กฐ ํƒ€์ž…์ธ ๋ฐฐ์—ด, ์—ด๊ฑฐ, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฒˆ์ง€(์ฃผ์†Œ)๋ฅผ ๊ฐ’์œผ๋กœ ๊ฐ–๋Š”๋‹ค. ๋ฒˆ์ง€๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๋œป์—์„œ ์ฐธ์กฐํƒ€์ž…์ด๋ผ ๋ถ€๋ฅธ๋‹ค. ๋ณ€์ˆ˜๋Š” ์Šคํƒ์˜์—ญ์— ์ƒ์„ฑ๋˜๊ณ  ๊ฐ์ฒด๋Š” ํž™์˜์—ญ์— ์ƒ์„ฑ๋œ๋‹ค.

String ํƒ€์ž…

์ž๋ฐ”์—์„œ ๋ฌธ์ž์—ด์€ String ๊ฐ์ฒด๋กœ ์ƒ์„ฑ๋˜๊ณ  ๋ณ€์ˆ˜๋Š”  String ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ํ‘œํ˜„ํ• ๋•Œ String ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค๋Š” ๋ง์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋งŒ์•ฝ  ๋‘๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๊ฐ€ ๋™์ผํ•œ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ์ฐธ์กฐํ•  ๊ฒฝ์šฐ๋Š” ๊ฐ™์€ String ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋œ๋‹ค.

String name1 = "ํ™๊ธธ๋™";
String name2 = "ํ™๊ธธ๋™";
String name3 = new String("ํ™๊ธธ๋™");

name1๊ณผ name2๋Š” ๋™์ผํ•œ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— name1==name2์˜ ๊ฒฐ๊ณผ๋Š” true๊ฐ’์ด ๋‚˜์˜จ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ name3๋Š” new ์—ฐ์‚ฐ์ž๋กœ String ๊ฐ์ฒด๋ฅผ ๋ณ„๋„๋กœ ์ƒ์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— name1==name3์˜ ๊ฒฐ๊ณผ๋Š” false๊ฐ€ ๋‚˜์˜จ๋‹ค.  ๋™์ผํ•œ String ๊ฐ์ฒด์ด๋“  ๋‹ค๋ฅธ String๊ฐ์ฒด์ด๋“  ์ƒ๊ด€์—†์ด ๋ฌธ์ž์—ด๋งŒ์„ ๋น„๊ตํ•  ๋•Œ์—๋Š” String ๊ฐ์ฒด์˜ .equals()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. .equals()๋ฉ”์†Œ๋“œ๋Š” ์šฐ๋„ˆ๋ณธ ๋ฌธ์ž์—ด๊ณผ ๋งค๊ฐœ๊ฐ’์œผ๋กœ ์ฃผ์–ด์ง„ ๋น„๊ต ๋ฌธ์ž์—ด์ด ๋™์ผํ•œ์ง€ ๋น„๊ตํ•œ ํ›„ true ๋˜๋Š” false๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

๋Œ“๊ธ€