๋ชฉ๋กKITRI (108)

๐Ÿ’ป

Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - [๊ธฐ๋ณธ API ํด๋ž˜์Šค] StringBuffer ํด๋ž˜์Šค

๊ฐ์ฒด ํ•ด์‹œ์ฝ”๋“œ hashCode() : ๊ฐ์ฒด ํ•ด์‹œ์ฝ”๋“œ๋ž€ ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•  ํ•˜๋‚˜์˜ ์ •์ˆ˜๊ฐ’์„ ๋งํ•œ๋‹ค. Object ํด๋ž˜์Šค์˜ hashCode() ๋ฉ”์†Œ๋“œ๋Š” ๊ฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ฒˆ์ง€๋ฅผ ์ด์šฉํ•ด์„œ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋ฆฌํ„ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฃผ์†Œ๊ฐ’์˜ ํ‚ค๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ๋ฌธ์ž์—ด์„ ๊ฒฐํ•ฉํ•˜๋Š” + ์—ฐ์‚ฐ์ž๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฉด ํ• ์ˆ˜๋ก ๊ทธ๋งŒํผ String์˜ ๊ฐ์ฒด์˜ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋” ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค(ํ”„๋กœ๊ทธ๋žจ ์„ฑ๋Šฅ์„ ๋Š๋ฆฌ๊ฒŒ ํ•˜๋Š” ์š”์ธ). ๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์ด ๋งŽ์„ ๊ฒฝ์šฐ์—๋Š” Stringํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” java.lang ํŒจํ‚ค์ง€์˜ StringBuffer ๋˜๋Š” StringBuilder ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์ด ๋‘ ํด๋ž˜์„œ๋Š” ๋‚ด๋ถ€ ๋ฒ„ํผ(buffer: ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ) ์—..

KITRI/JAVA 2020. 5. 13. 10:22
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - [๊ธฐ๋ณธ API ํด๋ž˜์Šค] Stringํด๋ž˜์Šค(charAt(), equals(), length(), toLowerCase(), toUpperCase(), replace(), valueOf())

๋ฌธ์ž ์ถ”์ถœ charAt() : ๋งค๊ฐœ๊ฐ’์œผ๋กœ ์ฃผ์–ด์ง„ ์ธ๋ฑ์Šค์˜ ๋ฌธ์ž๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ์ธ๋ฑ์Šค๋ž€ 0์—์„œ๋ถ€ํ„ฐ "๋ฌธ์ž์—ด๊ธธ์ด-1"๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๋ฅผ ๋งํ•œ๋‹ค. ๋ฌธ์ž์—ด ๋น„๊ต equals() : ๊ฐ™์œผ๋ฉด true, ๋‹ค๋ฅด๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ์›๋ž˜ equals()๋Š” Object์˜ ๋ฒˆ์ง€ ๋น„๊ต ๋ฉ”์†Œ๋“œ์ด์ง€๋งŒ, String ํด๋ž˜์Šค๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜์˜€๋‹ค. ๋ฌธ์ž์—ด ๊ธธ์ด length() : ๋ฌธ์ž์—ด์˜ ๊ธธ์ด(๋ฌธ์ž์˜ ์ˆ˜)๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ๋ฌธ์ž์—ด ์ฐพ๊ธฐ IndexOf() : ๋งค๊ฐœ๊ฐ’์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์‹œ์ž‘๋˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ๋งŒ์•ฝ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด -1์„ ๋ฆฌํ„ดํ•œ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ๋ทฐ๋‹จ์—์„œ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ๋ฅผ ํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฒ˜๋ฆฌ. ๊ณต๋ฐฑ์ฒดํฌ, ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์ธ์ง€ ์ฒดํฌ ๋“ฑ๋“ฑ. [์ฐธ๊ณ ] https://coding-factor..

KITRI/JAVA 2020. 5. 12. 14:42
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - [๊ธฐ๋ณธ API ํด๋ž˜์Šค] Class ํด๋ž˜์Šค(getClass(), forName(), getDeclaredConstructors(), newInstance())

Class ๊ฐ์ฒด ์–ป๊ธฐ getClass(), forName() : ํ”„๋กœ๊ทธ๋žจ์—ฅ์„œ Class๊ฐ์ฒด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” Objectํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” getClass() ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด๋œ๋‹ค. Object๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค์ด๋ฏ€๋กœ ๋ชจ๋“  ํด๋ž˜์Šค์—์„œ getClass() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌํ”Œ๋ ‰์…˜ getDeclaredConstructors(), getDeclaredFields(), getDeclaredMethods() : ํด๋ž˜์Šค ์ƒ์„ฑ์ž, ํ•„๋“œ์ •๋ณด, ๋ฉ”์†Œ๋“œ ์ •๋ณด๋ฅผ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. Constructor, Field, Method ํด๋ž˜์Šค๋Š” ๋ชจ๋‘ java.lang.reflect ํŒจํ‚ค์ง€์— ์†Œ์†๋˜์–ด ์žˆ๋‹ค. ๋™์  ๊ฐ์ฒด ์ƒ์„ฑ newInstance() : ๋™์ ๊ฐ์ฒด ์ƒ์„ฑ์‹œ ์‚ฌ์šฉํ•œ๋‹ค. ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด์„œ ๊ฐ..

KITRI/JAVA 2020. 5. 12. 14:40
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - [๊ธฐ๋ณธ API ํด๋ž˜์Šค] Object ํด๋ž˜์Šค(equals(), toString())

[์ฐธ๊ณ ] ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ• 1. ํ”„๋กœ์ ํŠธ ํด๋” ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ์šฐํด๋ฆญ > Export > Java > JAR file 2. ์›ํ•˜๋Š” ํด๋ž˜์Šค ์„ ํƒ> next > finish ๋‹ค๋ฅธ ํด๋”์—์„œ ์ž‘์„ฑํ•œ ํด๋ž˜์Šค๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. import api01.Object.(ํด๋ž˜์Šค๋ช…); ๊ฐ์ฒด ๋น„๊ต equals() : Object ํด๋ž˜์Šค์˜ eqauls() ๋ฉ”์†Œ๋“œ๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž์ธ ==์™€ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ๋‘ ๊ฐ์ฒด๊ฐ€ ๋™์ผํ•œ ๊ฐ์ฒด๋ผ๋ฉด true๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ๊ฐ์ฒด ๋ฌธ์ž ์ •๋ณด toString() : Objectํด๋ž˜์Šค์˜ toString() ๋ฉ”์†Œ๋“œ๋Š” ๊ฐ์ฒด์˜ ๋ฌธ์ž ์ •๋ณด๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ๊ฐ์ฒด์˜ ๋ฌธ์ž ์ •๋ณด๋ž€ ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•œ ๊ฐ’์„ ๋งํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Objectํด๋ž˜์Šค์˜ toStrin..

KITRI/JAVA 2020. 5. 12. 14:40
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ฐ์ฒดํƒ€์ž…ํ™•์ธ(instanceof), ์‹ฑ๊ธ€ํ†ค ํ•จ์ˆ˜(Singleton)

๊ฐ์ฒด ํƒ€์ž… ํ™•์ธ(instanceof) ๊ฐ•์ œ ํƒ€์ž… ๋ณ€ํ™˜์€ ์ž์‹ ํƒ€์ž…์ด ๋ถ€๋ชจ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ€๋ชจ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๊ฐ€ ๋ถ€๋ชจ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ๊ฒฝ์šฐ ์ž์‹ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋‹ค. Parent parent = new Parent(); Child child = (Child) Parent; //๊ฐ•์ œ ํƒ€์ž… ๋ณ€ํ™˜์„ ํ•  ์ˆ˜ ์—†๋‹ค. Parent parent = new Child(); //upCasting Child child = (Child) Parent; //๊ฐ•์ œ ํƒ€์ž… ๋ณ€ํ™˜์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. downCasting ๊ทธ๋ ‡๋‹ค๋ฉด ๋ถ€๋ชจ ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ๋ถ€๋ชจ ๊ฐ์ฒด์ธ์ง€ ์ž์‹ ๊ฐ์ฒด์ธ์ง€ ์–ด๋–ป๊ฒŒ ํ™•์ธํ• ๊นŒ? ์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด instanceof ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜..

KITRI/JAVA 2020. 5. 11. 14:57
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ํด๋ž˜์Šค์˜ ๊ด€๊ณ„(Dependency, Association)

ํด๋ž˜์Šค๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‚ฌ์šฉ -> ์˜์กด๊ด€๊ณ„ ๊ฐ์ฒด๋ฅผ ๋ฉค๋ฒ„๊ฐ์ฒด(ํ•„๋“œ)๋กœ ์‚ฌ์šฉ => ์—ฐ๊ด€๊ด€๊ณ„ ๊ด€๊ณ„(Relationship) 1. ์ •์˜ - ๊ตฌ์„ฑ์š”์†Œ๋“ค๊ฐ„์˜ ์˜๋ฏธ ์žˆ๋Š” ์—ฐ๊ด€์„ฑ์„ ํ‘œํ˜„ - ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ž˜์Šค๋“ค๊ฐ„์˜ ๊ด€๊ณ„ ํ‘œํ˜„ ์‹œ ์‚ฌ์šฉ๋œ๋‹ค. 2. ์ข…๋ฅ˜ ์ผ๋ฐ˜ํ™”๊ด€๊ณ„(Generalization Relationship) ์‹ค์ฒดํ™”, ์‹คํ˜„ํ™” ๊ด€๊ณ„(Realization Relationship) ์˜์กด๊ด€๊ณ„(Dependency Relationship) ์—ฐ๊ด€๊ด€๊ณ„(Association Relationship) ์ง‘ํ•ฉ์—ฐ๊ด€(Aggregation Relationship) ๋ณตํ•ฉ์—ฐ๊ด€(Composition Relationship) -> ์ง‘ํ•ฉ์—ฐ๊ด€๊ด€๊ณ„์™€ ๋ณตํ•ฉ์—ฐ๊ด€๊ด€๊ณ„๋Š” ์„ค๊ณ„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. Dependency(์˜์กด๊ด€๊ณ„) ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ๊ฐ™๋‹ค. ํด๋ž˜์Šค ์•ˆ์— ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€..

KITRI/JAVA 2020. 5. 11. 14:32