์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- DDL
- MariaDB
- ํ์
- hashCode
- springboot
- Java
- error
- DBCP
- database
- constraints
- greedy
- docker
- Spring
- ๋ฐฑ์ค
- ์๊ณ ๋ฆฌ์ฆ
- Operating System
- ConnectionPool
- hikaricp
- GPG
- MySQL
- aws
- JDBC
- dml
- equals
- DataSource
- where
- Git
- oauth2
- interrupt
- ์๊ณ ๋ฆฌ์ฆ #๋ฐฑ์ค #1717
- Today
- Total
did_story
[Java] ๋์ผ์ฑ(Identity)๊ณผ ๋๋ฑ์ฑ(Equality) ๋ณธ๋ฌธ
๋์ผ์ฑ(Identity)์ ๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๊ฐ์์ ์๋ฏธํ๋ค.(== : ๊ฐ์ฒด ๋์ผ ๋น๊ต)
๋๋ฑ์ฑ(Equality)์ ๋ ๊ฐ์ฒด์ ๊ฐ์ด ๊ฐ์์ ์๋ฏธํ๋ค. ( equals() )
void Identity() {
List<String> fluits_first = List.of("apple", "pineapple", "mango");
List<String> fluits_second = fluits_first;
System.out.println(fluits_first == fluits_second); // true
System.out.println(fluits_first.equals(fluits_second)); // true
}
void Equality() {
List<String> fluits_first = List.of("apple", "pineapple", "mango");
List<String> fluits_second = List.of("apple", "pineapple", "mango");
System.out.println(fluits_first == fluits_second); // false
System.out.println(fluits_first.equals(fluits_second)); // true
}
์ฒซ๋ฒ์งธ Test์์๋, fluits_second์์ ๋ฆฌ์คํธ fluits_first๋ฅผ ๋์ ์ต๋๋ค. ์ด๋ฌ๋ฉด fluits_first๊ณผ fluits_second๋ ๋ฉ๋ชจ๋ฆฌ์์์ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์์ต๋๋ค.
๋๋ฒ์งธ Test์์๋, fluits_second์์ ์๋กญ๊ฒ ์ ์ธ๋์ด์ก์ต๋๋ค. ์ฆ fluits_first๊ณผ fluits_second๋ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์์ต๋๋ค!
์ฆ ํ์ง๋ง ๋๋ฑ์ฑ์ด ์ง์ผ์ง๋คํด์, ๋์ผ์ฑ์ด ์ง์ผ์ง์ง ์์ต๋๋ค. ํ์ง๋ง ๋์ผ์ฑ์ด ์ง์ผ์ง๋ฉด ๋๋ฑ์ฑ์ด ์ง์ผ์ง๋๋ค.
๋ ํ๋์ ์ฌ๋ฐ๋ ์ฌ์ค!
String fluit1 = "mango";
String fluit2 = "mango";
System.out.println(fluit1 == fluit2); // true? false?
์ ๋ต์ ๋ฐ๋ก True!
Java์์ ๋ฌธ์์ด์ String Pool๋ก ๊ด๋ฆฌ ๋๋ฏ๋ก, “mango”๋ผ๋ ๋ ๊ฐ์ String ๋ณ์๋ฅผ ์ ์ธํ๋๋ผ๋,
JVM Heap ๋ฉ๋ชจ๋ฆฌ์ String Pool ์์๋ ๋ฌธ์์ด 1๊ฐ๋ง ์กด์ฌํ๋ค.
๋ฐ๋ผ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ฃผ์๋ฅผ ๋ฐ๋ก๋ณธ๋ค → ๋์ผ์ฑ์ ๊ฐ์!
๋ค๋ฅธ ์ฃผ์๋ฅผ ๋ฐ๋ก ๋ณด๊ฒ ํ๊ธฐ ์ํด์๋?! (์ฆ ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด๋ก ์ ์ฅํ ๋ ค๋ฉด?!)
String fluit1 = "mango";
String fluit2 = new String("mango");
System.out.println(fluit1 == fluit2); // true? false?
new ์ฐ์ฐ์๋ฅผ ํตํด์, ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ๋๋ฑ์ฑ์ ๋ณด์ฅ๋์ง๋ง, ๋์ผ์ฑ์ ๋ณด์ฅ๋์ง ์๋๋ค.
๋ ๊ณต๋ถ๋ฅผ ํ๊ณ ์ถ์ผ๋ฉด?!
[Java] hashCode()์์ equals()๋ฅผ ์ฌ์ ์ ํด์ผํ๋ ์ด์
'BackEnd๐ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] hashCode()์์ equals()๋ฅผ ์ฌ์ ์ ํด์ผํ๋ ์ด์ (1) | 2025.06.27 |
---|---|
[Java] ์๋ฐ์์ Checked Exception๊ณผ Uncheck Exception์ ์ฐจ์ด์ . (2) | 2025.06.17 |
[Java / JDBC] JDBC๊ฐ ๋ฌด์์ผ๊น? (1) | 2025.01.20 |