Programming Language/Java

Java 1์ผ์ฐจ ๊ณต๋ถ€(์ž๋ฐ” ๊ธฐ์ดˆ, ๋ณ€์ˆ˜, ํƒ€์ž…๋ณ€ํ™˜)

chaerlo127 2022. 1. 24. 23:27
728x90

์š”์ฆˆ์Œ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€ ๋“ฑ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ

Java๋ฅผ ๊ณต๋ถ€๋ฅผ ํ•˜์ง€ ์•Š์•„ 

๊ฑฐ์˜ ๊นŒ๋จน์€ ์ƒํƒœ๊ฐ€ ๋˜์—ˆ๋‹ค,, 

๋ธ”๋กœ๊ทธ์— ๊ฐœ๋…๊ณผ ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฆฌ๋ฉด์„œ

์‰ฌ์šด ๋ถ€๋ถ„์€ ๋น ๋ฅด๊ฒŒ ๋ณต์Šตํ•˜๊ณ 

์–ด๋ ต๊ณ  ๊ณต๋ถ€ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„์€ ์‹ฌํ™”์ ์œผ๋กœ ๋ณต์Šตํ•˜๋ฉด์„œ

ํŒจํ„ด ์ค‘์‹ฌ์  ์‚ฌ๊ณ ์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” Swing ์„ ๋นจ๋ฆฌ ์ตํžˆ๊ณ ์ž ํ•œ๋‹ค.

 

1. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ

Java๋Š” Byte ์ฝ”๋“œ๋กœ ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•œ๋‹ค. ์ด๋Š” OS(Operating System, ์šด์˜์ฒด์ œ)์—์„œ ๋ฐ”๋กœ ์ธ์‹์ด ๋  ์ˆ˜ ์—†๊ณ  JVM(Java Virtual Machine)์„ ํ†ตํ•ด ๋ฒˆ์—ญ์„ ํ•˜์—ฌ ์ธ์‹์ด ๋œ๋‹ค. ์ฆ‰, Java๋Š” OS์— ๋…๋ฆฝ์ ์ด๋‹ค.

OS๋Š” Window, Linux ์ฒ˜๋Ÿผ ๋งŽ์€ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰˜๊ฒŒ ๋˜๋Š”๋ฐ, OS ์ข…๋ฅ˜์— ์ƒ๊ด€ ์—†์ด Java์— ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  JVM์„ ํ†ตํ•ด OS ์ „์šฉ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญ์ด ๋˜๋ฉด, ๊ฐ๊ฐ ์ˆ˜์ •์—†์ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. (+ OS๋Š” ํ•˜๋“œ์›จ์–ด ๊ด€๋ฆฌ์ž, User Interface ๊ด€๋ฆฌ, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ๋ฒˆ์—ญ)

 

2. ์ž๋ฐ” ์ง„์ˆ˜

์ž๋ฐ” ์ง„์ˆ˜ ๊ณ„์‚ฐ ์„ค๋ช…์€ ๋‹ค์Œ ๊ธ€์— ํ•˜๊ณ (์ง„์ˆ˜ ๊ณ„์‚ฐ, ๋ณ€๊ฒฝ ๋‹ค ๊นŒ๋จน,,,,), ์ด๋ฅผ ์ž๋ฐ” ์ฝ”๋”ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

public static void main(String[] args) {
		int a = 0b1011; //2์ง„์ˆ˜
		System.out.println("2์ง„์ˆ˜: " + a);
		
		int b = 0206;//8์ง„์ˆ˜
		System.out.println("8์ง„์ˆ˜: " + b);
		
		int c = 365; //10์ง„์ˆ˜
		System.out.println("10์ง„์ˆ˜: "+ c);
		
		int d = 0xB3;//16์ง„์ˆ˜
		System.out.println("16์ง„์ˆ˜: " + d);	
        }

 

 

3. Char Type & String Type

์ž‘์€ ๋”ฐ์˜ดํ‘œ(')๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Char Type์—  ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ์ด ๋˜์–ด ์œ ๋‹ˆ์ฝ”๋“œ๋กœ ์ €์žฅ๋˜์ง€๋งŒ, ํฐ ๋”ฐ์˜ดํ‘œ(")๋กœ ๊ฐ์‹ผ ๋ฌธ์ž ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์ž๋“ค์€ ์œ ๋‹ˆ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ํฐ ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ผ ๋ฌธ์ž๋ฅผ ๋ฌธ์ž์—ด์ด๋ผ๊ณ  ํ•˜๊ณ , String Type์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

์ฆ‰ Char๋Š” ์œ ๋‹ˆ์ฝ”๋“œ(ASCII Code)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์— ์šฉ์ดํ•˜๋‹ค. ํ•˜์ง€๋งŒ, String์€ ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.

public static void main(String[] args) {
	char a = 65; // 10์ง„์ˆ˜๋กœ ์ €์žฅ
//	char b = "b"; -> ํฐ ๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
	String b = "65";
	System.out.println(a+b);
}
   //console ์—๋Š” a65๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋จ

 

 

4. float Type VS double Type

์‹ค์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด์„ float ํƒ€์ž…์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์‹ถ์œผ๋ฉด, ๋ฆฌํ„ฐ๋Ÿด ๋’ค์— ์†Œ๋ฌธ์ž f๋‚˜ ๋Œ€๋ฌธ์ž F๋ฅผ ๋ถ™์—ฌ ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š๋„๋ก ํ•ด์•ผํ•œ๋‹ค.

ํƒ€์ž… ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉํฌ๊ธฐ ์ €์žฅ๋˜๋Š” ๊ฐ’์˜ ํ—ˆ์šฉ๋ฒ”์œ„(์–‘์ˆ˜๊ธฐ์ค€) ์ •๋ฐ€๋„(์†Œ์ˆ˜์  ์ดํ•˜ ์ž๋ฆฌ)
float 4byte 32bit (1.4*10-45)~(3.4*1038) 7์ž๋ฆฌ
double 8byte 64bit (4.9*10-324)~(1.8*10308) 15์ž๋ฆฌ
public static void main(String[] args) {
	float a = 2.4f;
	double b = 2.4;
	System.out.println("float: " + a + "double: " + b);
}

 

5. ์ž๋™ ํƒ€์ž… ๋ณ€ํ™˜(promotion, Implicit Conversation)

๊ฐ’์˜ ํ—ˆ์šฉ ๋ฒ”์œ„๊ฐ€ ์ž‘์€ ํƒ€์ž…์ด ํ—ˆ์šฉ ๋ฒ”์œ„๊ฐ€ ํฐ ํƒ€์ž…์œผ๋กœ ์ €์žฅ๋  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

์‹ค์ˆ˜๋‚˜ ์ •์ˆ˜ ์—ฐ์‚ฐ์‹œ์—๋„ ์ž๋™ ํƒ€์ž…์ด ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๊ธฐ๋ณธ ํƒ€์ž… ํฌ๊ธฐ ์ˆœ

byte < short < int < long < float < double
public static void main(String[] args)
{
	byte a = 10; int b = a; // a๋Š” int ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ ๋จ
		
	long c = 1000000000L; 
	float d = c; /*c๋Š” float ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ*/ double e = c; /*c๋Š” double ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ*/
}

 

6. ๊ฐ•์ œ ํƒ€์ž… ๋ณ€ํ™˜/๊ฐ•์ œ ํ˜• ๋ณ€ํ™˜(Demotion, Explicit Conversation)

์ž‘์€ ํ—ˆ์šฉ ๋ฒ”์œ„ ํƒ€์ž… = (์ž‘์€ ํ—ˆ์šฉ ๋ฒ”์œ„ ํƒ€์ž…) ํฐ ํ—ˆ์šฉ ๋ฒ”์œ„ ํƒ€์ž…
public static void main(String[] args) {
		int a = 65;
		char b = (char) a;
		System.out.println(b); // console ์ฐฝ : A
	}

 

 

7. + ์—ฐ์‚ฐ์—์„œ ๋ฌธ์ž์—ด ์ž๋™ ํƒ€์ž… ๋ณ€ํ™˜

public static void main(String[] args) {
		int a = 10+2+3;
		System.out.println("์›๋ž˜์˜ a ๊ฐ’: " + a);
		
		String b = 10 + 2 + "3";
		System.out.println(b); // 123
		
		String c = 10 + "2" + 3;
		System.out.println(c); //1023
		
		String d = "10" + 2 + 3;
		System.out.println(d); //1023
		
		String e = "10" + (2+3);
		System.out.println(e); //105
	}

 

8. ๋ฌธ์ž์—ด์„ ๊ธฐ๋ณธํƒ€์ž…์œผ๋กœ ๊ฐ•์ œ ํƒ€์ž… ๋ณ€ํ™˜

๋ณ€ํ™˜ ํƒ€์ž… ์‚ฌ์šฉ
String -> byte Byte.parseByte
String -> short Short.parseShort
String -> int Integer.parseInt
String -> long Long.parseLong
String -> float Float.parseFloat
String -> double Double.parseDouble
String -> boolean Boolean.parseBoolean
byte, short, int, long, float, double, boolean -> String String.valueOf

String.valueOf๋ฅผ ๋„ฃ์œผ๋ฉด ์•„๋ฌด ๊ฐ’์ด๋‚˜ ๋„ฃ์–ด๋„ ๋ชจ๋‘ String์œผ๋กœ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

String.valueOf๋ž‘ toString์€ ๋ชจ๋‘ ๋‹ค๋ฅธ ํƒ€์ž…์„ String์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์ง€๋งŒ, ๋ช…ํ™•ํ•œ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 

์ฐจ์ด์ ์€ Null์ด ์žˆ๋Š” ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ์ด๋‹ค. String.valueOf๋Š” null์ด๋ผ๋ฉด null์„ ๋ฌธ์ž์—ด๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ํ•˜์ง€๋งŒ, toString์€ ๋ฌธ์ž์—ด๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ , Null PointerException ์—๋Ÿฌ ์ฒ˜๋ฆฌ๊ฐ€ ๋‚˜๊ฒŒ ๋œ๋‹ค.

 

public static void main(String[] args) {
		String a = "10";
		int b = Integer.parseInt(a);
		System.out.println("Integer.parseInt: "+a);
		String c = String.valueOf(b);
		String d = Integer.toString(b);
		
		System.out.println("String.valueOf(b): " +c + " Integer.toString(b): " + d);
	}

 

[์ถœ์ฒ˜] ํ˜ผ๊ณต์ž๋ฐ”(p.01~p.88)

728x90