๋ชฉ๋กKITRI (108)
๐ป
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8J53e/btqD7GCEIiL/DbopXBHOwTQp59fAYphO2k/img.png)
๊ฐ์ฒด ํด์์ฝ๋ hashCode() : ๊ฐ์ฒด ํด์์ฝ๋๋ ๊ฐ์ฒด๋ฅผ ์๋ณํ ํ๋์ ์ ์๊ฐ์ ๋งํ๋ค. Object ํด๋์ค์ hashCode() ๋ฉ์๋๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ง๋ฅผ ์ด์ฉํด์ ํด์์ฝ๋๋ฅผ ๋ง๋ค์ด ๋ฆฌํดํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ง๋ค ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค. ์ฃผ์๊ฐ์ ํค๊ฐ์ ๊ฐ์ง๋ค. ๋ฌธ์์ด์ ๊ฒฐํฉํ๋ + ์ฐ์ฐ์๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ฉด ํ ์๋ก ๊ทธ๋งํผ String์ ๊ฐ์ฒด์ ์๊ฐ ๋์ด๋๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ ์ฐจ์งํ๊ฒ ๋๋ค(ํ๋ก๊ทธ๋จ ์ฑ๋ฅ์ ๋๋ฆฌ๊ฒ ํ๋ ์์ธ). ๋ฐ๋ผ์ ๋ฌธ์์ด์ ๋ณ๊ฒฝํ๋ ์์ ์ด ๋ง์ ๊ฒฝ์ฐ์๋ Stringํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค๋ java.lang ํจํค์ง์ StringBuffer ๋๋ StringBuilder ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ์ด ๋ ํด๋์๋ ๋ด๋ถ ๋ฒํผ(buffer: ๋ฐ์ดํฐ๋ฅผ ์์๋ก ์ ์ฅํ๋ ๋ฉ๋ชจ๋ฆฌ) ์..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nLDdx/btqD3dV8N59/YGmdpBYDkMluytSqabnDV0/img.png)
๋ฌธ์ ์ถ์ถ charAt() : ๋งค๊ฐ๊ฐ์ผ๋ก ์ฃผ์ด์ง ์ธ๋ฑ์ค์ ๋ฌธ์๋ฅผ ๋ฆฌํดํ๋ค. ์ธ๋ฑ์ค๋ 0์์๋ถํฐ "๋ฌธ์์ด๊ธธ์ด-1"๊น์ง์ ๋ฒํธ๋ฅผ ๋งํ๋ค. ๋ฌธ์์ด ๋น๊ต equals() : ๊ฐ์ผ๋ฉด true, ๋ค๋ฅด๋ฉด false๋ฅผ ๋ฆฌํดํ๋ค. ์๋ equals()๋ Object์ ๋ฒ์ง ๋น๊ต ๋ฉ์๋์ด์ง๋ง, String ํด๋์ค๊ฐ ์ค๋ฒ๋ผ์ด๋ฉํด์ ๋ฌธ์์ด์ ๋น๊ตํ๋๋ก ๋ณ๊ฒฝํ์๋ค. ๋ฌธ์์ด ๊ธธ์ด length() : ๋ฌธ์์ด์ ๊ธธ์ด(๋ฌธ์์ ์)๋ฅผ ๋ฆฌํดํ๋ค. ๋ฌธ์์ด ์ฐพ๊ธฐ IndexOf() : ๋งค๊ฐ๊ฐ์ผ๋ก ์ฃผ์ด์ง ๋ฌธ์์ด์ด ์์๋๋ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌํดํ๋ค. ๋ง์ฝ ์ฃผ์ด์ง ๋ฌธ์์ด์ด ํฌํจ๋์ด ์์ง ์์ผ๋ฉด -1์ ๋ฆฌํดํ๋ค. ์ค๋ฌด์์๋ ๋ทฐ๋จ์์ ์ ํจ์ฑ๊ฒ์ฌ๋ฅผ ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฒ๋ฆฌ. ๊ณต๋ฐฑ์ฒดํฌ, ์ฌ๋ฐ๋ฅธ ๊ฐ์ธ์ง ์ฒดํฌ ๋ฑ๋ฑ. [์ฐธ๊ณ ] https://coding-factor..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lDdIk/btqD4x7w1iG/xpnmK4F1ofO1YKArxL2j40/img.png)
Class ๊ฐ์ฒด ์ป๊ธฐ getClass(), forName() : ํ๋ก๊ทธ๋จ์ฅ์ Class๊ฐ์ฒด๋ฅผ ์ป๊ธฐ ์ํด์๋ Objectํด๋์ค๊ฐ ๊ฐ์ง๊ณ ์๋ getClass() ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด๋๋ค. Object๋ ๋ชจ๋ ํด๋์ค์ ์ต์์ ํด๋์ค์ด๋ฏ๋ก ๋ชจ๋ ํด๋์ค์์ getClass() ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋ค. ๋ฆฌํ๋ ์ getDeclaredConstructors(), getDeclaredFields(), getDeclaredMethods() : ํด๋์ค ์์ฑ์, ํ๋์ ๋ณด, ๋ฉ์๋ ์ ๋ณด๋ฅผ ์๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. Constructor, Field, Method ํด๋์ค๋ ๋ชจ๋ java.lang.reflect ํจํค์ง์ ์์๋์ด ์๋ค. ๋์ ๊ฐ์ฒด ์์ฑ newInstance() : ๋์ ๊ฐ์ฒด ์์ฑ์ ์ฌ์ฉํ๋ค. ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํธ์ถํด์ ๊ฐ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ExS9M/btqD2bKFxA2/Cl7NXT31v1fH6IRewpeRG1/img.png)
[์ฐธ๊ณ ] ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ ๋ฐฉ๋ฒ 1. ํ๋ก์ ํธ ํด๋ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ์ฐํด๋ฆญ > Export > Java > JAR file 2. ์ํ๋ ํด๋์ค ์ ํ> next > finish ๋ค๋ฅธ ํด๋์์ ์์ฑํ ํด๋์ค๋ฅผ importํ์ฌ ์ฌ์ฉํ ์ ์๋ค. import api01.Object.(ํด๋์ค๋ช ); ๊ฐ์ฒด ๋น๊ต equals() : Object ํด๋์ค์ eqauls() ๋ฉ์๋๋ ๋น๊ต ์ฐ์ฐ์์ธ ==์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๋ค. ๋ ๊ฐ์ฒด๊ฐ ๋์ผํ ๊ฐ์ฒด๋ผ๋ฉด true๋ฅผ ๋ฆฌํดํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฆฌํดํ๋ค. ๊ฐ์ฒด ๋ฌธ์ ์ ๋ณด toString() : Objectํด๋์ค์ toString() ๋ฉ์๋๋ ๊ฐ์ฒด์ ๋ฌธ์ ์ ๋ณด๋ฅผ ๋ฆฌํดํ๋ค. ๊ฐ์ฒด์ ๋ฌธ์ ์ ๋ณด๋ ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ํํํ ๊ฐ์ ๋งํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Objectํด๋์ค์ toStrin..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bgLJni/btqD6mcJSvn/Bpec1Ea0fLZmDVwNLBcPlK/img.png)
starUML> http://staruml.io/ StarUML UML 2 Compatible with UML 2.x standard metamodel and diagrams: Class, Object, Use Case, Component, Deployment, Composite Structure, Sequence, Communication, Statechart, Activity and Profile Diagram. Additional Diagrams Support to create Entity-Relationship staruml.io draw.io> http://www.draw.io/ Flowchart Maker & Online Diagram Software Flowchart Maker and Onl..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KC3dd/btqD2bqnAXd/VZvJ2tsW2KbStk4zPvIzl1/img.png)
๊ฐ์ฒด ํ์ ํ์ธ(instanceof) ๊ฐ์ ํ์ ๋ณํ์ ์์ ํ์ ์ด ๋ถ๋ชจ ํ์ ์ผ๋ก ๋ณํ๋์ด ์๋ ์ํ์์๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ชจ ํ์ ์ ๋ณ์๊ฐ ๋ถ๋ชจ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ๊ฒฝ์ฐ ์์ ํ์ ์ผ๋ก ๋ณํํ ์ ์๋ค. Parent parent = new Parent(); Child child = (Child) Parent; //๊ฐ์ ํ์ ๋ณํ์ ํ ์ ์๋ค. Parent parent = new Child(); //upCasting Child child = (Child) Parent; //๊ฐ์ ํ์ ๋ณํ์ ํ ์ ์๋ค. downCasting ๊ทธ๋ ๋ค๋ฉด ๋ถ๋ชจ ๋ณ์๊ฐ ์ฐธ์กฐํ๋ ๊ฐ์ฒด๊ฐ ๋ถ๋ชจ ๊ฐ์ฒด์ธ์ง ์์ ๊ฐ์ฒด์ธ์ง ์ด๋ป๊ฒ ํ์ธํ ๊น? ์ด๋ค ๊ฐ์ฒด๊ฐ ์ด๋ค ํด๋์ค์ ์ธ์คํด์ค์ธ์ง ํ์ธํ๋ ค๋ฉด instanceof ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/boE5qv/btqD4T2FRvh/kMfomhSx84y0rNV3Pj1aoK/img.png)
ํด๋์ค๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉ -> ์์กด๊ด๊ณ ๊ฐ์ฒด๋ฅผ ๋ฉค๋ฒ๊ฐ์ฒด(ํ๋)๋ก ์ฌ์ฉ => ์ฐ๊ด๊ด๊ณ ๊ด๊ณ(Relationship) 1. ์ ์ - ๊ตฌ์ฑ์์๋ค๊ฐ์ ์๋ฏธ ์๋ ์ฐ๊ด์ฑ์ ํํ - ์ผ๋ฐ์ ์ผ๋ก ํด๋์ค๋ค๊ฐ์ ๊ด๊ณ ํํ ์ ์ฌ์ฉ๋๋ค. 2. ์ข ๋ฅ ์ผ๋ฐํ๊ด๊ณ(Generalization Relationship) ์ค์ฒดํ, ์คํํ ๊ด๊ณ(Realization Relationship) ์์กด๊ด๊ณ(Dependency Relationship) ์ฐ๊ด๊ด๊ณ(Association Relationship) ์งํฉ์ฐ๊ด(Aggregation Relationship) ๋ณตํฉ์ฐ๊ด(Composition Relationship) -> ์งํฉ์ฐ๊ด๊ด๊ณ์ ๋ณตํฉ์ฐ๊ด๊ด๊ณ๋ ์ค๊ณ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. Dependency(์์กด๊ด๊ณ) ์๋ช ์ฃผ๊ธฐ๊ฐ ๊ฐ๋ค. ํด๋์ค ์์ ๋ฉ์๋์ ๋งค๊ฐ๋ณ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bEnsSr/btqD1qup36b/kFGRgOYHckY5kgfAZ7CDu1/img.png)
์์ 1) RAM ๊ตฌ์กฐ heap stack new AA()... 0x100 a 0x100 b 0x100 c 0x100 d 0x100 new AA()... 0x200 x 0x200 y 0x200 b, c, d ์๋ก ํ ๋น ๋ฐ์ง ์๊ณ ์ฃผ์๊ฐ์ ์ฐธ์กฐํ๋ค. new๋ผ๋ ํค์๋๋ก ๊ฐ์ฒด๋ฅผ ๋ฐ์ํ๋ฉด ์๋ก์ด ๊ณต๊ฐ์ ํ ๋น ๋ฐ๋๋ค. b.func() ์ด ์คํ๋๋ ์ด์ ๋ a=null; ๋ก ํด์ค๋ b๋ ์ฃผ์๊ฐ์ ์ฐธ์กฐํ๊ธฐ๋๋ฌธ์ด๋ค. RAM heap stack a null b null c null d null new AA()... 0x200 x 0x200 y 0x200 ๋ฉ๋ชจ๋ฆฌ๋ constant, heap, stack ์์ญ์ด ์กด์ฌ. constanct : static. ์ข ๋ฃ๊น์ง ์ด์์๋ค. stack : ๋ธ๋ญ๋จ์๋ก ์กด์ฌํ๋ค. heap : n..