์๋ฐ ๊ณต๋ถ(79)
-
[์ดํํฐ๋ธ ์๋ฐ] Item17 ์๋ฒฝ๊ณต๋ต. final๊ณผ ์๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ JMM
item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. " p105. ์๋ก ์์ฑ๋ ๋ถ๋ณ ์ธ์คํด์ค๋ฅผ ๋๊ธฐํ ์์ด ๋ค๋ฅธ ์ค๋ ๋๋ก ๊ฑด๋ค๋ ๋ฌธ์ ์์ด ๋์ํ๋ค.(JLS 17.4, 17.5)" JMM (Java Memory Model) : JMM ์ด๋ผ๊ณ ํด์ ๊ตฌ๊ธ๋งํด๋ณด๋ฉด JVM์ ํ, ์คํ... ์ด๋ฐ ์ค๋ช ์ผ๋ก ์ด์ด์ง๋ ๊ธ๋ค์ด ๋ง์๋ฐ ์ด๊ฑด JMM์ผ๋ก JVM๊ณผ๋ ๋ค๋ฅด๋ค!! ์๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ JMM์ JVM์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๊ฐ ์๋๋ผ ์ ๋ฒํ legal ํ๋ก๊ทธ๋จ์ ์คํ๊ท์น์ด๋ค. https://docs.oracle.com/javase/specs/jls/se14/html/jls-17.html#jls-17.4 Chapter 17. Threads and Locks class A { final int x; A() { x = 1; } int f()..
2023.02.28 -
[์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. (๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํ ๊ฒ)
[์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ. [์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. (๋ถ๋ณ ํด๋์ค์ ์ฅ์ ๊ณผ ๋จ์ ) (tistory.com) [์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. (๋ถ๋ณ ํด๋์ค์ ์ฅ์ ๊ณผ ๋จ์ ) [์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ. [์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. (๋ถ๋ณ ํด๋์ค) (tistory.com) [์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. (๋ถ๋ณ ํด๋์ค) [ hyejin.tistory.com ์ ๋ฒ ๊ธ์์ ๋ถ๋ณ ํด๋์ค์ ๊ฐ๋ ๊ณผ ๋ง๋๋ ๋ค์ฏ๊ฐ์ง ๊ท์น, ๊ทธ๋ฆฌ๊ณ ๋ถ๋ณ ํด๋์ค์ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ํด์ ๋ฐฐ์ ๋ค. ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋ค ๋ ๋ค์ฏ๊ฐ์ง ๊ท์น์ ๋ํด์ ์ค๋์ ๋ถ๋ณ ํด..
2023.02.28 -
[์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. (๋ถ๋ณ ํด๋์ค์ ์ฅ์ ๊ณผ ๋จ์ )
[์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ. [์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. (๋ถ๋ณ ํด๋์ค) (tistory.com) [์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. (๋ถ๋ณ ํด๋์ค) [์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ. ๋ถ๋ณ ํด๋์ค๋? : ๊ฐ๋จํ ๋งํด์ ๊ทธ ์ธ์คํด์ค์ ๋ด๋ถ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ํด๋์ค๋ฅผ ๋งํ๋ค. ๋ถ๋ณ ์ธ์คํด์ค์ ๊ฐ์ง๋ ์ ๋ณด๋ ๊ณ ์ ๋์ด์ ๊ฐ์ฒด hyejin.tistory.com ์ ๋ฒ ๊ธ์์ ๋ถ๋ณ ํด๋์ค๊ฐ ๋ฌด์์ธ์ง ๊ฐ๋ ๊ณผ ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ๊ฐ์ง ๊ท์น์ ๋ํด์ ๊ณต๋ถํ๋ค. ๋ถ๋ณ ํด๋์ค๋ ๊ฐ๋ณ ํด๋์ค๋ณด๋ค ์ค๊ณํ๊ณ , ๊ตฌํํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ์ค๋ฅ๊ฐ ์๊ธธ ์ฌ์ง๋ ์ ๊ณ ํจ์ฌ ์์ ํ๋ค๊ณ ํ๋๋ฐ ์ข ๋ ์์ธํ๊ฒ ๋ถ๋ณ ํด๋์ค..
2023.02.27 -
[์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํ ํ๋ผ. (๋ถ๋ณ ํด๋์ค)
[์ดํํฐ๋ธ ์๋ฐ] Item17. ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ. ๋ถ๋ณ ํด๋์ค๋? : ๊ฐ๋จํ ๋งํด์ ๊ทธ ์ธ์คํด์ค์ ๋ด๋ถ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ํด๋์ค๋ฅผ ๋งํ๋ค. ๋ถ๋ณ ์ธ์คํด์ค์ ๊ฐ์ง๋ ์ ๋ณด๋ ๊ณ ์ ๋์ด์ ๊ฐ์ฒด๊ฐ ํ๊ดด๋๋ ์๊ฐ๊น์ง ์ ๋ ๋ฌ๋ผ์ง์ง ์๋๋ค. ์๋ฐ์์ ๋ถ๋ณํด๋์ค๋ String, BigInteger, BigDeciaml ๋ฑ์ด ์๋ค. ๋ถ๋ณ ํด๋์ค๋ ๊ฐ๋ณ ํด๋์ค๋ณด๋ค ์ค๊ณํ๊ณ ๊ตฌํํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ์ค๋ฅ๊ฐ ์๊ธธ ์ฌ์ง๋ ์ ๊ณ ํจ์ฌ ์์ ํ๋ค. ๋ถ๋ณ ํด๋์ค ๋ง๋๋ 5๊ฐ์ง ๊ท์น ๐พ public final class PhoneNumber // ํด๋์ค๋ฅผ ํ์ฅํ ์ ์๋๋ก ํ๋ค. { private final short areaCode, prefix, lineNum; // ๋ชจ๋ ํ๋๋ฅผ final๋ก ์ ์ธ, ๋ชจ๋ ํ๋๋ pri..
2023.02.27 -
[์ดํํฐ๋ธ ์๋ฐ] Item16. public ํด๋์ค์์๋ public ํ๋๊ฐ ์๋ ๋ฉ์์ฆ ์ ๊ทผ์๋ฅผ ์ฌ์ฉํ๋ผ.
[์ดํํฐ๋ธ ์๋ฐ] Item16. public ํด๋์ค์์๋ public ํ๋๊ฐ ์๋ ๋ฉ์๋ ์ ๊ทผ์๋ฅผ ์ฌ์ฉํ๋ผ. public class Point { public double x; public double y; public static void main(String[] args) { Point point = new Point(); point.x = 10; point.y = 20; } } ์์ ์์์ฒ๋ผ public ํด๋์ค์์ public ํ๋๋ฅผ ํตํด ์ฌ์ฉํ๋ค๋ฉด ๋ฐ์ดํฐ ํ๋์ ์ง์ ์ ๊ทผํ ์ ์์ด ์บก์ํ์ ์ด์ ์ ์ ๊ณตํ์ง ๋ชปํ๋ค. [์ดํํฐ๋ธ ์๋ฐ] Item15. ํด๋์ค์ ๋ฉค๋ฒ์ ์ ๊ทผ ๊ถํ์ ์ต์ํํ๋ผ. (tistory.com) [์ดํํฐ๋ธ ์๋ฐ] Item15. ํด๋์ค์ ๋ฉค๋ฒ์ ์ ๊ทผ ๊ถํ์ ์ต์ํํ๋ผ. [์ดํํฐ๋ธ ..
2023.02.27 -
[์ดํํฐ๋ธ ์๋ฐ] Item15. ํด๋์ค์ ๋ฉค๋ฒ์ ์ ๊ทผ ๊ถํ์ ์ต์ํํ๋ผ.
[์ดํํฐ๋ธ ์๋ฐ] Item15. ํด๋์ค๋ ๋ฉค๋ฒ์ ์ ๊ทผ ๊ถํ์ ์ต์ํํ๋ผ. https://www.inflearn.com/course/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-2/dashboard ์ดํํฐ๋ธ ์๋ฐ ์๋ฒฝ ๊ณต๋ต 2๋ถ - ์ธํ๋ฐ | ๊ฐ์ ์๋ฐ ํ์ต์ ๋ํ์ “์ดํํฐ๋ธ ์๋ฐ”๋ฅผ ๋ณด๋ค ์ฝ๊ณ ์๋ฒฝํ๊ฒ ํ์ตํ์ธ์. ์ด ๊ฐ์๋ฅผ ์๊ฐํ์๋ฉด ์ฌ๋ฌ๋ถ์ ์๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ง์๊ณผ ์ค๋ ฅ๋ฟ ์๋๋ผ ํ์ต ๋ฅ๋ ฅ ๋ํ ํฅ์์ํฌ ์ ์์ต๋๋ค., - ๊ฐ www.inflearn.com ์ดํํฐ๋ธ ์๋ฐ 1๋ถ ๊ฐ์๋ฅผ ๋ชจ๋ ๋ค ๋ฃ๊ณ , ์ด์ 2๋ถ ๊ฐ์๋ฅผ ๋ฃ๊ธฐ ์์ํ๋ค! ๐ค 1๋ถ์ ๋ง์ฐฌ๊ฐ์ง๋ก 2๋ถ๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ค์ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ์์ฑํด๋ ์์ ์ด๋ค. 2๋ถ์์๋ 4์ฅ ํด๋์ค์ ์ธํฐํ์ด..
2023.02.24 -
[์ดํํฐ๋ธ ์๋ฐ] Item14 ์๋ฒฝ๊ณต๋ต. ์ ๋ค๋ฆญ ์ธํฐํ์ด์ค
item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. " p90. ์ ๋ค๋ฆญ ์ธํฐํ์ด์ค์ด๋ฏ๋ก compareTo ๋ฉ์๋์ ์ธ์ ํ์ ์ ์ปดํ์ผ ํ์์ ์ ํด์ง๋ค. ์ ๋ ฅ ์ธ์์ ํ์ ์ ํ์ธํ๊ฑฐ๋ ํ๋ณํํ ํ์๊ฐ ์๋ค๋ ๋ป์ด๋ค." [TIL] 2023.01.09 ์ ๋ค๋ฆญ Generic ์ด๋? (tistory.com) [TIL] 2023.01.09 ์ ๋ค๋ฆญ Generic ์ด๋? TIL : Today I Learned ๐ค [JAVA] ์ ๋ค๋ฆญ Generic ์ด๋? [์ดํํฐ๋ธ ์๋ฐ] Item3. private ์์ฑ์๋ ์ด๊ฑฐ ํ์ ์ผ๋ก ์ฑ๊ธํค์์ ๋ณด์ฆํ๋ผ. (private ์์ฑ์ + public static final ํ๋ ) (tistory.com) [์ดํํฐ๋ธ ์๋ฐ] Item3. pri hyejin.tistory.com ์ฌ๊ธฐ์ ..
2023.02.07 -
[์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. (Comparable ๊ตฌํ ๋ฐฉ๋ฒ #2)
[์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. [์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. (Comparable ๊ตฌํ ๋ฐฉ๋ฒ #1) (tistory.com) [์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. (Comparable ๊ตฌํ ๋ฐฉ๋ฒ #1) [์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. [์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. (compareTo ๊ธฐ๋ณธ ๊ท์ฝ) (tistory.com) [์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. (co hyejin.tistory.com ์ ๋ฒ ๊ธ์์๋ Comparable์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ ์ฒซ๋ฒ์งธ๋ก Compar..
2023.02.06 -
[์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. (Comparable ๊ตฌํ ๋ฐฉ๋ฒ #1)
[์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. [์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. (compareTo ๊ธฐ๋ณธ ๊ท์ฝ) (tistory.com) [์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. (compareTo ๊ธฐ๋ณธ ๊ท์ฝ) item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. compareTo : compareTo๋ Comparable ์ธํฐํ์ด์ค์ ์ ์ผํ ๋ฉ์๋๋ก Objet.equals(๋จ์ ๋์น์ฑ)์ ๋ํด์ ์์๊น์ง ๋น๊ตํ ์ ์์ผ๋ฉฐ Generic์ ์ง์ํ๋ค. Comparable์ ๊ตฌํํ hyejin.tistory.com ์ฌ๊ธฐ์ ์ฐ์ CompareTo์ ๋ํ ๊ธฐ๋ณธ ๊ท์ฝ์ ๋ํด์ ๋ดค๊ณ , ์ด์ compareTo๋ฅผ ๊ตฌํํ..
2023.02.06 -
[์ดํํฐ๋ธ ์๋ฐ] Item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. (compareTo ๊ธฐ๋ณธ ๊ท์ฝ)
item14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ฏผํ๋ผ. compareTo : compareTo๋ Comparable ์ธํฐํ์ด์ค์ ์ ์ผํ ๋ฉ์๋๋ก Objet.equals(๋จ์ ๋์น์ฑ)์ ๋ํด์ ์์๊น์ง ๋น๊ตํ ์ ์์ผ๋ฉฐ Generic์ ์ง์ํ๋ค. Comparable์ ๊ตฌํํ๋ค๋ ๊ฒ์ ๊ทธ ํด๋์ค์ ์ธ์คํด์ค๋ค์๋ ์์ฐ์ ์ธ ์์ natural order๊ฐ ์์์ ๋ปํ๋ค. ์ํ๋ฒณ์ด๋ ์ซ์, ์ฐ๋์ ๊ฐ์ด ์์๊ฐ ๋ช ํํ ๊ฐ ํด๋์ค๋ฅผ ์์ฑํ๋ค๋ผ๋ฉด ๋ฐ๋์ Comparable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์. compareTo ์ผ๋ฐ ๊ท์ฝ BigDecimal n1 = BigDecimal.valueOf(23134134); BigDecimal n2 = BigDecimal.valueOf(11231230); BigDecimal n3 = Bi..
2023.02.06 -
[์ดํํฐ๋ธ ์๋ฐ] Item13 ์๋ฒฝ๊ณต๋ต. TreeSet
item13. clone ์ฌ์ ์๋ ํญ์ ์ฃผ์ํด์ ์งํํ๋ผ. " p86. TreeSet" TreeSet : TreeSet์ Set ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค๋ก, Set์ ํน์ง์ธ ๊ฐ์ฒด๋ฅผ ์ค๋ณตํด์ ์ ์ฅํ ์ ์๊ณ , ์ ์ฅ ์์๊ฐ ์ ์ง๋์ง ์๋ ํน์ง์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์๋ค. TreeSet์ ์ด์ง ํ์ ํธ๋ฆฌ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ, ์ด์ง ํ์ ํธ๋ฆฌ๋ ์ถ๊ฐ์ ์ญ์ ์๋ ์๊ฐ์ด ์ข ๊ฑธ๋ฆฌ์ง๋ง ์ ๋ ฌ, ๊ฒ์์ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. TreeSet์ ์๋ฆฌ๋จผํธ๊ฐ ์ง๋ ์์ฐ์ ์ธ ์์ natural order์ ๋ฐ๋ผ ์ ๋ ฌํ๊ณ , ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ์์ฑ์์ ๋งค๊ฐ๋ณ์๋ก Comparator ๊ฐ์ฒด๋ฅผ ์ ๋ ฅํ์ฌ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ์์๋ก ์ง์ ํด ์ค ์๋ ์๋ค. TreeSet numbers = new TreeSet(); numbers.a..
2023.02.06 -
[์ดํํฐ๋ธ ์๋ฐ] Item13 ์๋ฒฝ๊ณต๋ต. UnCheckedException
item13. clone ์ฌ์ ์๋ ํญ์ ์ฃผ์ํด์ ์งํํ๋ผ. " p80. ๋น๊ฒ์ฌ ์์ธ(Unchecked Exception) ์์ด์ผ ํ๋ค๋ ์ ํธ๋ค." UncheckedException public class MyException extends RuntimeException { } public class MyApp { public void hello() { System.out.println("hello"); throw new MyException(); } } public static void main(String[] args) { MyApp myApp = new MyApp(); myApp.hello(); } -> UncheckedException์ ์ฌ์ฉํ๋ฉด CheckedException์ ๋นํด ์ปดํ์ผ ์๋ฌ๋ฅผ ..
2023.02.03