Java

๊ธฐ๋ณธ ํด๋ž˜์Šค(Object, String, Class)

์กฐ๋ฐˆ๋ฐ 2022. 3. 6. 15:20

๐Ÿ’ก java.lang ํŒจํ‚ค์ง€

: ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ํด๋ž˜์Šค๋“ค์ด ์†ํ•œ ํŒจํ‚ค์ง€ <- String, Integer, System ๋“ฑ

: ํ”„๋กœ๊ทธ๋ž˜๋ฐ์‹œ import ํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ import๋œ๋‹ค

: import java.lang.*;  ๋ฌธ์žฅ์ด ์ถ”๊ฐ€ ๋œ๋‹ค

 

๐Ÿ’ก Object ํด๋ž˜์Šค

: ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค

: java.lang.Object ํด๋ž˜์Šค

: ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค์—์„œ ์ƒ์† ๋ฐ›์Œ

: ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

: ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ์ค‘ ์ผ๋ถ€๋Š” ์žฌ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Œ (final๋กœ ์„ ์–ธ๋œ ๋ฉ”์„œ๋“œ๋Š” ์žฌ์ •์˜ ๋ถˆ๊ฐ€)

: ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ extends Object๋ฅผ ์ถ”๊ฐ€ 

โ˜ž toString() ๋ฉ”์„œ๋“œ : ๊ฐ์ฒด์˜ ์ •๋ณด๋ฅผ String์œผ๋กœ ๋ฐ”๊ฟ€๋•Œ ์‚ฌ์šฉ

โ˜ž equals() ๋ฉ”์„œ๋“œ : ๋‘ ์ธ์Šคํ„ด์Šค์˜ ๊ฐ’์„ ๋น„๊ตํ•ด true/false ๋ฐ˜ํ™˜

โ˜ž hashCode() ๋ฉ”์„œ๋“œ : ์ธ์Šคํ„ด์Šค์˜ ์ €์žฅ์ฃผ์†Œ ๋ฐ˜ํ™˜, search์— ์œ ์šฉ

   * hash : ์ •๋ณด ์ €์žฅ, ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ, ํž™ ๋ฉ”๋ชจ๋ฆฌ์— ์ธ์Šคํ„ด์Šค๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹

โ˜ž clone() ๋ฉ”์„œ๋“œ : ๊ฐ์ฒด์˜ ์›๋ณธ ๋ณต์ œ, ์›๋ณธ ์œ ์ง€ํ•ด๋‘๊ณ  ๋ณต์‚ฌ๋ณธ์„ ์‚ฌ์šฉ, ์ƒˆ๋กœ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ๊ธฐ๋Š”๊ฒƒ

                       : ๊ฐ์ฒด์˜ clone() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ ํ—ˆ์šฉ์˜ ์˜๋ฏธ๋กœ implements Cloneable ์ธํ„ฐํŽ˜์ด์Šค ๋ช…์‹œ

 

๐Ÿ’ก String ํด๋ž˜์Šค

: ์„ ์–ธ 2๊ฐ€์ง€

String str1 = new String("abc");   // ํž™๋ฉ”๋ชจ๋ฆฌ์— ์ฃผ์†Œ ์ƒ์„ฑ, newํ• ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์ฃผ์†Œ์ƒ์„ฑ๋จ

String str2 = "test";                  // ์ƒ์ˆ˜ ํ’€์— ์กด์žฌ, ๋ฆฌํ„ฐ๋Ÿด, str2,str3์€ ๊ฐ™์€ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ด

String str3 = "test";

: ํ•œ๋ฒˆ ์ƒ์„ฑ๋œ String ๊ฐ’์€ ๋ถˆ๋ณ€ํ•˜๋‹ค

โ˜ž A.concat(B)์œผ๋กœ String ํด๋ž˜์Šค ๋ฌธ์ž์—ด ๋‘๊ฐœ ์—ฐ๊ฒฐ -> A์— A+B์˜ ๋ฌธ์ž์—ด์ด ๋“ค์–ด์˜ค๋ฉฐ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด ์ฃผ์†Œ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค

    => ๋นˆ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  gabage๊ฐ€ ๋งŽ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

โ˜ž StringBuilder, StringBuffer : ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐ€๋ณ€์ ์ธ char[] ๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค

                                      : ๋ฌธ์ž์—ด์„ ์—ฌ๋Ÿฌ๋ฒˆ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ๋•Œ ์œ ์šฉ

                                      : ์ƒˆ๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๊ธฐ์กด ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜๋ฏ€๋กœ gabage๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๋‹ค 

๐Ÿ”Ž StringBuffer : ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋™๊ธฐํ™” ๋ณด์žฅ

๐Ÿ”Ž StringBuilder : ๋‹จ์ผ ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ ๊ถŒ์žฅ

 

๐Ÿ’ก Class ํด๋ž˜์Šค

: ์ž๋ฐ”์˜ ๋ชจ๋“  ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ปดํŒŒ์ผ ํ›„ class ํŒŒ์ผ๋กœ ์ƒ์„ฑ๋จ

: class ํŒŒ์ผ์—๋Š” ๊ฐ์ฒด์˜ ์ •๋ณด (๋ฉค๋ฒ„๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž ๋“ฑ)๊ฐ€ ํฌํ•จ๋˜์žˆ์Œ

: Class ํด๋ž˜์Šค๋Š” ์ปดํŒŒ์ผ๋œ classํŒŒ์ผ์—์„œ ๊ฐ์ฒด์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ