์ ์ฒด ๊ธ(658)
-
[์ดํํฐ๋ธ ์๋ฐ] Item10. equals๋ ์ผ๋ฐ ๊ท์ฝ์ ์ง์ผ ์ฌ์ ์ํ๋ผ. (๋์นญ์ฑ, ๋ฐ์ฌ์ฑ, ์ถ์ด์ฑ)
item10. equals๋ ์ผ๋ฐ ๊ท์ฝ์ ์ง์ผ ์ฌ์ ์ํ๋ผ. equals ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ ๋๋ ๋ฐ๋์ ์ผ๋ฐ ๊ท์ฝ์ ๋ฐ๋ผ์ผ ํ๋ค. equals ๊ท์ฝ 1๏ธโฃ ๋ฐ์ฌ์ฑ reflexivity : null ์ด ์๋ ๋ชจ๋ ์ฐธ์กฐ ๊ฐ x์ ๋ํด x.equals(x) == true ์ด๋ค. ๋จ์ํ ๋งํ๋ฉด ๊ฐ์ฒด๋ ์๊ธฐ ์์ ๊ณผ ๊ฐ์์ผ ํ๋ค๋ ๋ป์ด๋ค. ์ด ์๊ฑด์ ๋๋ถ๋ถ?์ด ์๋๋ผ ์์งํ ๊ฑฐ์ ๋ค ๋ง์กฑํ๋ ์กฐ๊ฑด์ผํ ๋ฐ ๋ง์ฝ ์ด ์๊ฑด์ ์ด๊ธด ํด๋์ค๊ฐ ์๋ค๋ฉด ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ปฌ๋ ์ ์ ๋ฃ์ ๋ค์ contains ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ๋ฐฉ๊ธ ๋ฃ์ ์ธ์คํด์ค๊ฐ ์๋ค๊ณ ๋ตํ ๊ฒ์ด๋ค. 2๏ธโฃ ๋์นญ์ฑ symmetry : null ์ด ์๋ ๋ชจ๋ ์ฐธ์กฐ ๊ฐ x, y ์ ๋ํด x.equals(y) ๊ฐ true์ด๋ฉด y.equals(x)๋ true์ด๋ค. x.e..
2023.01.26 -
[์ดํํฐ๋ธ ์๋ฐ] Item10. equals๋ ์ผ๋ฐ ๊ท์ฝ์ ์ง์ผ ์ฌ์ ์ํ๋ผ.
item10. equals๋ ์ผ๋ฐ ๊ท์ฝ์ ์ง์ผ ์ฌ์ ์ํ๋ผ. equals ๋ฉ์๋๋ ์ฌ์ ์ํ๊ธฐ ์ฌ์๋ ๋ณด์ด์ง๋ง ํจ์ ์ด ๋ง๊ธฐ ๋๋ฌธ์ ์ฌ์ ์ ํ์ง ์๋ ๊ฒ์ด ์ต์ ์ด๊ธฐ๋ ํ๋ค. ์ฌ์ ์ํ์ง ์์ผ๋ฉด ๊ทธ ํด๋์ค์ ์ธ์คํด์ค๋ ์ค์ง ์๊ธฐ ์์ ๊ณผ๋ง ๊ฐ๊ฒ ๋๋ค. equals๋ฅผ ์ฌ์ ์ํ์ง ์์๋ ๋๋ ์ํฉ 1๏ธโฃ ๊ฐ ์ธ์คํด์ค๊ฐ ๋ณธ์ง์ ์ผ๋ก ๊ณ ์ ํ๋ค. : ๊ฐ์ ํํํ๋๊ฒ ์๋๋ผ ๋์ํ๋ ๊ฐ์ฒด๋ฅผ ํํํ๋ ํด๋์ค๊ฐ ์ฌ๊ธฐ์ ํด๋น๋๋ค. Thread๊ฐ ์ฌ๊ธฐ์ ํด๋น๋๋๋ฐ, Object์ equals ๋ฉ์๋๋ ์ด๋ฌํ ํด๋์ค์ ๋ฑ ๋ง๊ฒ ๊ตฌํ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์ฑ๊ธํค ๊ฐ์ฒด ๋๋ enum ํ์ ์ด๋ฉด equals๋ฅผ ๊ตณ์ด ์ฌ์ ์ ํ์ง ์์๋ ๋๋ค.(ํ์๋ ์์) 2๏ธโฃ ์ธ์คํด์ค์ '๋ ผ๋ฆฌ์ ๋์น์ฑ(logical equality)' ์ ๊ฒ์ฌํ ์ผ์ด ์๋ค. ๋ํ..
2023.01.26 -
[์ดํํฐ๋ธ ์๋ฐ] Item09 ์๋ฒฝ๊ณต๋ต.
item09. try-finally๋ณด๋ค try-with-resources ๋ฅผ ์ฌ์ฉํ๋ผ. " p48. ์๋ฐ ํผ์ฆ๋ฌ ์์ธ ์ฒ๋ฆฌ ์ฝ๋์ ์ค์" package chapter01.item09.puzzler; import java.io.*; /** * item09. try-finally ๋ณด๋ค๋ try-with-resources๋ฅผ ์ฌ์ฉํ๋ผ. * ์๋ฐ Puzzler ์ฑ ์ ์ธ๊ธํ ์์ธ ์ฒ๋ฆฌ ์ฝ๋์ ์ค์ */ public class Copy { private static final int BUFFER_SIZE = 8 * 1024; static void copy(String src, String dst) throws IOException { InputStream in = new FileInputStream(src); Out..
2023.01.25 -
[์ดํํฐ๋ธ ์๋ฐ] Item9. try-finally ๋ณด๋ค๋ try-with-resources ๋ฅผ ์ฌ์ฉํ๋ผ.
item09. try-finally ๋ณด๋ค๋ try-with-resources๋ฅผ ์ฌ์ฉํ๋ผ. https://hyejin.tistory.com/1011 [์ดํํฐ๋ธ ์๋ฐ] Item8. finalizer์ cleaner ์ฌ์ฉ์ ํผํ๋ผ. item07. ๋ค ์ด ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ํด์ ํ๋ผ. ์ดํํฐ๋ธ ์๋ฐ part 1์์๋ ๊ฐ์ฒด์ ์์ฑ๊ณผ ์๋ฉธ์ ๋ํด์ ์๊ธฐํ๊ณ ์๋๋ฐ ์ง๊ธ์ ์ ๋ฒ item ๋ถํฐ๋ ๊ฐ์ฒด ์๋ฉธ์ ๋ํด์ ์ด์ผ๊ธฐ ํ๊ณ ์๋ค. ์ฐ์ ์๋ฐ์์๋ ๋ hyejin.tistory.com ์ฌ๊ธฐ์ ๋ด์ฉ์ด ์ถ๊ฐ๋? ๋๋์ผ๋ก Item09. ์์๋ try-with-resources ์ฌ์ฉ์ ๊ถ์ฅํ๊ณ ์๋ค. (๊ถ์ฅ๋ณด๋ค๋ ์ฌ์ฉํ๋ผ๊ณ ํ๊ณ ์๋ค.) ์๋ฐ์์๋ close ๋ฉ์๋๋ฅผ ํธ์ถํด์ ์ง์ ๋ซ์์ค์ผํ๋ ์์์ด InputStream, Out..
2023.01.25 -
[์ดํํฐ๋ธ ์๋ฐ] Item08 ์๋ฒฝ๊ณต๋ต. AutoClosable
item08. finalizer์ cleaner ์ฌ์ฉ์ ํผํ๋ผ. " p43. AutoClosable " AutoClosable์ด๋? : try-with-resources๋ฅผ ์ง์ํ๋ ์ธํฐํ์ด์ค์ด๋ค. /* * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package java.lang; /** * An object that may hold resources (such as file or socket handles) * u..
2023.01.25 -
[์ดํํฐ๋ธ ์๋ฐ] Item08 ์๋ฒฝ๊ณต๋ต. Finalizer ๊ณต๊ฒฉ
item08. finalizer์ cleaner ์ฌ์ฉ์ ํผํ๋ผ. " p42. Finalizer ๊ณต๊ฒฉ" https://hyejin.tistory.com/1011 [์ดํํฐ๋ธ ์๋ฐ] Item8. finalizer์ cleaner ์ฌ์ฉ์ ํผํ๋ผ. item07. ๋ค ์ด ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ํด์ ํ๋ผ. ์ดํํฐ๋ธ ์๋ฐ part 1์์๋ ๊ฐ์ฒด์ ์์ฑ๊ณผ ์๋ฉธ์ ๋ํด์ ์๊ธฐํ๊ณ ์๋๋ฐ ์ง๊ธ์ ์ ๋ฒ item ๋ถํฐ๋ ๊ฐ์ฒด ์๋ฉธ์ ๋ํด์ ์ด์ผ๊ธฐ ํ๊ณ ์๋ค. ์ฐ์ ์๋ฐ์์๋ ๋ hyejin.tistory.com ์ฌ๊ธฐ์ finalizer๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ ์ด์ ์ค ํ๋๋ก "finalizer๋ฅผ ์ฌ์ฉํ ํด๋์ค๋ finalizer ๊ณต๊ฒฉ์ ๋ ธ์ถ๋์ด ์ฌ๊ฐํ ๋ณด์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ค" ๋ผ๊ณ ํ๋๋ฐ ์ด๋ finalizer ๊ณต๊ฒฉ์ ์์ฑ์๋ ์ง๋ ฌํ ๊ณผ..
2023.01.25