-
[TIL] - 230704 data type, ๋ฉ๋ชจ๋ฆฌ ํ ๋น, has a relation, ๋ฌต์์ ์ด๊ธฐํTIL 2023. 7. 4. 18:13๋ฐ์ํ
# kb IT's your life 4๊ธฐ
๐Facts
Test ํด๋์ค์ ์คํ๋ฐฉ์
์ง๊ธ ๊ตฌํํ๋ ~Test class๋ 3 tier ๊ตฌ์กฐ์์์ Client์ ํด๋น๋๋ค.
์ญํ ์ ๋ฑ 2๊ฐ์ง์ด๋ค.
1. ๊ฐ ์ ๋ ฅ๋ฐ์์ ํจ์ ํธ์ถ(์๋น์ค ์์ฒญ)
2. ๋ฐํ๊ฐ ๋ฐ์์ ์ถ๋ ฅ(๊ฒฐ๊ณผ ํ์ด์ง)
์ด ์ด์์ ์ญํ ์ ํ๋ฉด ์ ๋๋ค!
์ง๊ธ์ ~Test class๊ฐ client์ ํด๋นํ๋ฏ๋ก print๋ ์ฌ๊ธฐ์ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒ์ด๋ค.
middle server์ ํด๋นํ๋ class์ ๋ฉ์๋๋ฅผ void๋ก ์ ์ธํ๊ณ print๋ฅผ ๊ฑฐ๊ธฐ์ ๋ฐ๋ก ํ๋ ๊ฒ๋ณด๋ค
๋ฉ์๋๋ฅผ String์ผ๋ก ์ ์ํ๊ณ ๋ฌธ์์ด์ ๋ฐํํด ~Test class์์ print๋ฅผ ํด์ฃผ๋ ๊ฒ OOP์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๊น๋ค.
๋ด๊ฐ JVM์ด๋ผ๊ณ ์๊ฐ!
Calling๊ณผ Worker ๋ฉ์๋
๋ฉ์๋๋ ๋ ๊ฐ์ง ํํธ๋ฅผ ๊ฐ์ง๋ค.
1. calling method: ํธ์ถ ๋ถ๋ถ
2. worker method: ํธ์ถ๋ฐ์ผ๋ฉด ์๋
๊ทธ๋ฆฌ๊ณ 2๊ฐ์ ํด๋์ค๋ฅผ ํ ํ์ผ์ ์์ฑํ ๋์๋
- main()์ ๊ฐ์ง๊ณ ์๋ ํด๋์ค ์์๋ง public์ ์ง์
- public์ผ๋ก ์ง์ ๋ ํด๋์ค ๋ช ์ผ๋ก javaํ์ผ์ด ์ ์ฅ๋์ด์ผ ํ๋ค.
Data Type
๋ณ์ ์ ์ธ
๋ณ์ํ์ + ๋ณ์์ด๋ฆ;
String brand; int price;
๋ฐ์ดํฐ ํ์ ์ ๋ณ์๊ณต๊ฐ์ ๋ค์ด๊ฐ๋ ๊ฐ์ ํ์ ์ ์ ํํ๋ ์ญํ ์ ํ๋ค.
- ๊ธฐ๋ณธํ Primiteive Data Type - 8๊ฐ์ง
- ์ฐธ์กฐํ, ํด๋์ค ํ์ Reference Data Type - ๊ธฐ๋ณธํ์ด ์๋๋ฉด ๋ชจ๋ ์ฐธ์กฐํ
๋ฐ์ดํฐ ํ์ ์ข ๋ฅ
์ซ์ํ
- ์ ์ํ - ๊ธฐ๋ณธ๊ฐ 0
- byte (8 bit)
- short (16)
- int (32)
- long (64)
- ์ค์ํ - ๊ธฐ๋ณธ๊ฐ 0.0
- float (32)
- double (64)
๋ฌธ์ํ - ๊ธฐ๋ณธ๊ฐ: ‘\u0000’
- char (16)/8
๋ ผ๋ฆฌํ - ๊ธฐ๋ณธ๊ฐ false
- boolean (1byte)
๋๋จธ์ง- ๋ชจ๋ Reference DataType
์ฐธ๊ณ )
float salary = 33.2 (x) → ๊ทธ๋ฅ 33.2๋ 33.2d์.
1) float salary = 33.2F;
2) double salary = 33.2;
String + Non-String ==> Stringํ
ํด๋์ค ์๋ฃํ ๋ณ์๋ฅผ ํ๋๋ก ์ธ ๋
- ์๋ฃํ ํด๋์ค๋ฅผ ๋ฐ๋ก ์ ์ํด์ setter, getter ์ ์ํ๊ธฐ
- calling์์๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋๊ณ setting ๊ฑฐ์น ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฃ๊ธฐ
- worker์์๋ getter์ ํตํด ํ๋๊ฐ์ ๊ฐ๊ณ ์ ๋ก์ง์ ๊ตฌ์ฑํ๋ค..
๋ฉ๋ชจ๋ฆฌ ํ ๋น
Shirt s1 = new Shirt();
Class๋ ๊ฐ์ฒด ์์ฑ ์ Type์ผ๋ก ์์ฉํ๋ค.
class์ ๊ตฌ์ฑ์์= ํ๋ + ๋ฉ์๋
๋ฉ๋ชจ๋ฆฌ๋ ํ๋ซํผ์ด๋ค. ์๋ฐ๊ฐ ์คํ๋๋ ์์ญ. ์ฆ, ์๋ฐ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ JVM์ด๋ค.
JVM ์์ ์ฌ๋ฌ ๊ณต๊ฐ์ด ์์ง๋ง stack๊ณผ heap์ ๋ํด์๋ง ์ฐ์ ์์๋ณด๊ฒ ๋ค.
์ฐ์ ์ปด๊ตฌ์์ ๋ฐฐ์ ๋ฏ์ด, new๋ผ๋ ํค์๋๋ก ์์ฑ๋ ๊ฐ์ฒด๋ heap์ ์ฌ๋ผ๊ฐ๋ค.
์ง์ญ๋ณ์๋ stack์ ์๋ฆฌ ์ก๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง์ญ๋ณ์๋ ํ๋๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ๊ฐ์ด ์์ด์ ๊ณต๊ฐ๋ง ํ ๋น๋๋ค.
๊ฐ์ฒด ์์ฑ์ ๊ฒฐ๋ก ์ ์ฃผ์๊ฐ!
๐๊ฐ์ฒด ์์ฑ์ ์๋ฆฌ
1. ์ง์ญ๋ณ์ s1์ด stack์ ๊ณต๊ฐ์ ์๋ฆฌ์ก๋๋ค.
2. new ํค์๋๋ฅผ ํตํด์ heap์ ํ๋์ ๋ฉ์๋๊ฐ ์ฌ๋ผ๊ฐ๋๋ฐ ํ๋๋ ๊ธฐ๋ณธ๊ฐ์ด ์ฑ์์ง. → ๋ฌต์์ ์ด๊ธฐํ
3. ๊ธฐ๋ณธ๊ฐ์ด ์ฑ์์ง ์งํ์ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ด ์ง ํ๊ณ ๋ธ.
4. ๊ทธ๋ฌ๋ฉด ์คํ์ ํ ๋น๋ ์ง์ญ๋ณ์ s1 ๊ณต๊ฐ์ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ด ๋ค์ด๊ฐ๋ค. ์คํ์ด s1์ด heap์ ์๋ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ์๋ฆฌ
5. ์ด๊ฒ reference value๊ทธ๋ ๋ค๋ฉด ๋ช ์์ ์ด๊ธฐํ๋?
- ์ฌ์ฉ์๊ฐ ์ง์ ํ ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ ๊ฒ.
- setter(), ์์ฑ์ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์์.
- ์์ฑ์: ๊ฐ์ฒด ์์ฑ๊ณผ ๋์์ ๊ฐ ์ฃผ์ , life cycle์ ํจ๊ป ํ ๋, car-engine ๋๋
- setter: ๊ฐ์ฒด ์์ฑ์ ํ๊ณ ๋์ค์ ๊ฐ์ ๋ณ๊ฒฝํ ์ผ์ด ์์ ๋ setter, car-navigator ๋๋
- ์ฐธ์กฐํ ๋ณ์๋ ์ฃผ๋ก setter ์ด์ฉํด ์ด๊ธฐํ
Has A Relation
Hasing, composed of ๊ด๊ณ์ ํด๋นํจ. ~๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
๐ data type์ ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ์ผ๋ก ๋๋๋๋ฐ, ์ด๋ค ํด๋์ค๊ฐ ๋ค๋ฅธ ํด๋์ค๋ฅผ ์๋ฃํ์ผ๋ก ํ๋๋ฅผ ๊ฐ์ง๋ค๋ฉด has a relation๊ด๊ณ์ ํด๋นํ๋ค.
- ์ด๋ has a relation ๊ด๊ณ๋ฅผ ๊ฐ์ง ๋ณ์ ์ด๋ฆ ์ค์ ์ ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
getter setter ํจ์ ๋ง๋ค์ด์ผ ํ๊ธฐ ๋๋ฌธ์
Notebook noteBook; ํ๋์ด๋ฆ ์ด๋ฐ ์์ผ๋ก ๋ง๋ค์ด์ผ ํจ.
ํด๋์ค์ด๋ฆ ๊ทธ๋๋ก ๊ฐ๊ณ ์์ ์ฒซ ๋ฌธ์๋ง ์๋ฌธ์๋ก ๋ณํ!
๋ง์ฝ, nb๋ก ํ๋ฉด getnb() setnb() ์ด๋ฐ ์์ผ๋ก ๋๋๊น ๊ฐ๋ ์ฑ ํ ๋ด๋ ค๊ฐ.
๊ทธ๋ฆฌ๊ณ setter์์๋ identifier๋ฅผ flexible ํ๊ฒ ์์ฑํ๋ ๊ฒ์ด ์ข์. ๊ผญ set ๋ง๊ณ change, buy ๋ฑ๋ฑ..
์ดํด๋ฆฝ์ค ๊ฟํ: alt shift s ๋๋ฅด๋ฉด ์์ฑ์, getter, setter ๋ค ํ๋๋ณ๋ก generate ๊ฐ๋ฅ!
๐ Findings
Hasing
https://hayden-archive.tistory.com/68
[์๋ฐ/Java] ํด์ง / ์์ / ์์์์์ ์์ฑ์ ์๋ฌ / ์ค๋ฒ๋ผ์ด๋ฉ / ๋คํ์ฑ / ๊ฐ์ฒด ํ๋ณํ
ํด์ง ๊ด๋ จ ํฌ์คํ : https://hayden-archive.tistory.com/64 ์ฐธ๊ณ 1 : https://pasudo123.tistory.com/24 ์ฐธ๊ณ 2 : https://micropilot.tistory.com/2416 ํด์ง(Hasing) - Has a Relation //์ํ๊ด๊ณ ==> Service๊ฐ VO๋ฅผ ๊ฐ์ง๊ณ VO์ ์์กดํ๋ค. -->
hayden-archive.tistory.com
Hasing์ด has - a - relation์ด๋ ๊ฐ์ ๋ง~ ์ํ์ ๊ด๊ณ!
JVM Method Area?
JVM์์ ๋ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ธ Method Area
https://tecoble.techcourse.co.kr/post/2021-08-09-jvm-memory/
JVM์ ๊ดํ์ฌ - Part 3, Run-Time Data Area
Java ๋ก ์์ฑ๋ ์ฝ๋๋ ์ด๋ป๊ฒ ๋์๊ฐ๋ ๊ฑธ๊น? ํด๋น ๋ฌผ์์ ๋ต์ ์ฐพ๊ธฐ ์ํ JVM ์๋ฆฌ์ฆ 3ํธ, JVM ์ ๊ตฌ์ฑ์์ ์ค Run-Time Data Area ์ ๊ดํ ๊ธ์ ๋๋ค. ์ด๋ฒ ๊ธ์์๋ JVM…
tecoble.techcourse.co.kr
๐ Feelings
์ค๋๋ ์ผ๋ฌด์ง๊ฒ ๋ฐฐ์ ๋ค.
ํ๋ฃจ์ข ์ผ ๊ต์ก๋ฐ์ผ๋ ์์ฆ ํ๋ฃจ๊ฐ ์ ๋ง ๊ธธ์ด์ง ๊ธฐ๋ถ์ด๋ค.
๋ณ์ ํ์ ์ ๋ฏธ๋ฆฌ ๊ณต๋ถํด ๊ฐ์ ๊ฐ์ฌ๋์ด ๊ฐ๋ฅด์ณ์ฃผ์๋ ๋ด์ฉ์ ๋ค ํก์ํ ์ ์์๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋ ๋ฉ์ธ ๋ด์ฉ์ด๋ผ๊ณ ์๊ฐํ๋ ๊ฐ์ฒด ์์ฑ์ ์๋ฆฌ์ has a relation ๊ตฌํ ๋ฐฉ์๋ ์๋ฒฝํ๊ฒ ์ดํดํ ๊ฒ ๊ฐ๋ค.
์ด์ฌํ ํด์ผ์ง~
๊ทธ๋์ ๋ ์ค๋ ๊ฒฐ๊ณผ ๋์์ผ๋ฉด..!
๐งญ Future
- Condition
- Encapsulation
- Looping
- Primitive Array
๋ด์ผ ๋ฐฐ์ธ ๋ด์ฉ๋ค์ธ๋ฐ <์๋ฐ์ ์ ์> ์ ๋ ํ๋ฉด์ ๊ณต๋ถํด ๊ฐ์ผ๊ฒ ๋ค.
๋ฐ์ํ'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] - 230918 mvc + service ๊ตฌ์กฐ (0) 2023.09.20 [TIL] - 230829 css ๊ธฐ์ด (0) 2023.09.18 [TIL] - 230828 html ๊ธฐ์ด (0) 2023.09.02 [TIL] - 230705 ์๋ฐ ์ ์ด๋ฌธ, ์บก์ํ, ๋ฐ๋ณต๋ฌธ, ๋ฐฐ (0) 2023.07.05 [TIL] - 230703 ์๋ฐ ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ, jdk, jre, oop, ํด๋์ค, platform independence (0) 2023.07.03