์์ ์ ๋ฏธ์ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ธ์งํด ์ ๋ฆฌํ๋ ๋ด์ฉ์ ํฌ์คํ Collection.stream().forEach() vs Collection.forEach() ์์ Collection.forEach๋ ์ปฌ๋ ์ ์ iterator๋ฅผ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ์์๊ฐ ๋ช ํํ๋ค. ๋ฐ๋ฉด Stream.forEach๋ ์์๊ฐ ๋ช ํํ์ง ์๋ค. ์์ฐจ์คํธ๋ฆผ์ด๋ผ๋ฉด ๋ณดํต ์์๋๋ก ์คํ๋์ง๋ง ๋ณ๋ ฌ์คํธ๋ฆผ์ด๋ผ๋ฉด ์์๊ฐ ๋ณด์ฅ๋์ง ์๋๋ค. Collection ์์ ๊ณผ Side Effect Collection.forEach๋ iter๋์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ณ๊ฒฝ๋์ด์ ์๋๋ค. ์ํํ๋ ๋์ ์์๊ฐ ์ถ๊ฐ/์ญ์ ๋๋ฉด ConcurrentModification Execption์ด ๋ฐ์ํ๋ค. ๋์์ ์ปฌ๋ ์ ์ fail-fastํ๊ฒ ์ค๊ณ๋์๋ค. ์ฆ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ฉด ๋ฐ๋ก ์์ธ๊ฐ..
์น์ผ๋ก๋ถํฐ ์ํ๋ ํ์์ ํ์ผ๋ง ๋ฐ๊ณ ์ถ์ ๋, ๋น์ฐํ ์๋ฒ์์ ํํฐ๋ง์ ํด์ผ ํ๋ค. ์ฌ์ค ํ๋ก ํธ์์๋ (์๋ฌด๋ฆฌ ์์ฌ์ด ์์ด๋) ์ต์ํ ๋ค์๊ณผ ๊ฐ์ด Accept ํ์ ์ ํ์ ๊ฑธ์ด๋์๊ฒ์ด๋ค. ์๋์ ๊ฐ์ด accept๋ฅผ ์ค์ ํ๋ฉด ์ฒจ๋ถํ์ผ ์ ํํ๋ฉด์์ ์ฌ์ง๊ณผ ์์ ํ์ผ๋ง ๋ณด์ธ๋ค. ์ฌ์ค ์ด๊ฑด ์ฐ์ธกํ๋จ์ "๋ชจ๋ ํ์ผ"๋ก ์ ํํ๋ฉด ๋ค๋ฅธ ํ์์ ํ์ผ๋ ๋ณด์ฌ ์ ํ ๊ฐ๋ฅํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ ๋ค๋ฅธ ํ์์ ํ์ผ์ ์๋ฒ๋ก submitํ๊ธฐ ์ ์ ํ๋ฒ๋ ์ํ๋ ํ์์ ํ์ผ์ธ์ง ํ์ธํ๋ JS ๋ฐฉ๋ฒ์ด ๋ถ๋ช ํ ์์ ๊ฒ์ด๊ณ , ๋๋ ์ ์ด์ input ํ๊ทธ๋์ ์ข๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ง์์๊น์ถ๋ค. ํ๋ก ํธ์์ 1์ฐจ์ ์ผ๋ก ํ์ธํ๋ ๊ฒ์ด ๋ฌผ๋ก ์ข๊ณ ๋ค๋ค ๊ทธ๋ ๊ฒ ํ๊ณ ์๊ฒ ์ง๋ง, ์ด๋ฒ์ ์๋ฒ์์ FilenameUtils (Apach..
์๋์ ์๋ฃ๋ฅผ ๋ฒ์ญ ๋ฐ ์์ฝ 10 Tips to override toString() method in Java ์๋ฐ์ toString ๋ฉ์๋๋ ๊ฐ์ฒด์ ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์ ๋ณด๋ฅผ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํ์์ผ๋ก ์ ๊ณตํ๋๋ฐ ์ด์ฉ๋๋ค. ์ฌ๋ฐ๋ฅด๊ฒ override๋ toString ๋ฉ์๋๋ ๊ฐ์น์๊ณ ์๋ฏธ์๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ, ํ๋ก๊ทธ๋จ์ ๋ก๊น ๊ณผ ๋๋ฒ๊น ์ ๋์์ ์ค๋ค. toString์ java.lang.Object ํด๋์ค์ ์ ์๋์ด ์๊ธฐ ๋๋ฌธ์, ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์๋๋ค. ๋ฐ๋ผ์ ์๋ธํด๋์ค์์ overrideํ๋๊ฒ์ด ์ข๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก toString์ package.class@hashCode์ ํํ๋ฅผ ์ถ๋ ฅํ๋ค. ex) test.Country@18e2b22 ์๋ฅผ ๋ค์ด, ๋คํธ์ํฌ ๊ด๋ จ ํด๋์ค์ ๊ฒฝ์ฐ toString์ ..
์ขํ๋ฏธ์ ์ ์งํํ๋ค ํท๊ฐ๋ ค์ ๋ ธ๊ฐ๋ค๋ก ์ง์ ๊ฐ ๋ณํ๋ฅผ ํ์ธํด๋ณด๊ธฐ๋ก ํ๋ค. Shallow Copy vs Deep Copy ๋จผ์ 3๊ฐ์ง์ ๋ณต์ฌ ๋ฐฉ๋ฒ ๋น๊ต ๋งํฌ๋ฅผ ์ฐธ์กฐํ, ์์๋ณต์ฌ/๊น์๋ณต์ฌ/๋๊น์๋ณต์ฌ public static void main(String[] args) { test1(); test2(); test3(); } private static void test1() { List origin = new ArrayList(); origin.add(new Car("k5")); origin.add(new Car("k9")); List copy = origin; origin.add(new Car("sonata")); copy.add(new Car("avante")); origin.get(0).setName("s..
enum์ class๊ตฌํ๊ณผ ๊ฐ์ ๋ฌธ๋ฒ์ ๊ฐ์ง๋ฉฐ, ์ด๋ฅผ ํตํด ํด๋์ค๋ฅผ ์์์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. ์์๊ฐ์ฒ๋ผ ์ ์ผํ๊ฒ ํ๋์ ์ธ์คํด์ค๊ฐ ์์ฑ๋์ด ์ฌ์ฉ๋๋ค. (์ผ์ข ์ singleton์ ๋ณด์ฅ) ์๋ก ๊ด๋ จ์๋ ์์๊ฐ๋ค์ ๋ชจ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ๊ฒ ์ฌ์ฉ ์์ Java) enum์ ํ์ฉํด if๋ฌธ ์์ ๊ธฐ (with Calculator ์์ ) ์ฐธ๊ณ ์๋ฃ Java Enum ํ์ฉ๊ธฐ - ์ฐ์ํํ์ ๋ค ๊ธฐ์ ๋ธ๋ก๊ทธ nextree/Java: enum์ ๋ฟ๋ฆฌ๋ฅผ ์ฐพ์์ opentutorials/์์์ enum - Java opentutorials/enum ํด๋์ค์ ์ฌ์ฉ๊ณผ ์ดํด - level up ๊ณผ์
SOLID (๊ฐ์ฒด ์งํฅ ์ค๊ณ) Single Responsibility Principle (SRP) : ๋จ์ผ ์ฑ ์์ ์์น Open Close Principle (OCP) : ๊ฐ๋ฐฉ ํ์์ ์์น The Liskov Substitution Principle (LSP) : ๋ฆฌ์ค์ฝํ ์นํ์ ์์น Interface Segregation Principle (ISP) : ์ธํฐํ์ด์ค ๋ถ๋ฆฌ์ ์์น Dependency Inversion Principle (DIP) : ์์กด์ฑ ์ญ์ ์ ์์น ์ฐธ๊ณ ์๋ฃ nextree/๊ฐ์ฒด์งํฅ ๊ฐ๋ฐ 5๋ ์๋ฆฌ: SOLID ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํ ๋ฒ์น, ์ด๋ก , ์์น, ๊ทธ๋ฆฌ๊ณ ํจํด๋ค tistory/๊ฐ์ฒด ์งํฅ ์ค๊ณ๋? (SOLID) github/๊ฐ์ฒด์งํฅ ๋์์ธ์ 5์์น(SOLID ์์น) ๊ฐ์ฒด์งํฅ 5๋ ์์น SR..
git : https://github.com/os94/java-coordinate/tree/enum-customException ๊ธฐ๋ณธ์ ์ผ๋ก Figure๋ฅผ ์์๋ฐ๋ Line, Triangle, Rectangle ํด๋์ค๊ฐ ์๋ค. ๊ทธ๋ฆฌ๊ณ List points๋ฅผ ์ฃผ๋ฉด ์ด ์ค ์ด๋๊ฒ์ ์์ฑํ ์ง mappingํ๋ ์ญํ ์ ํฉํ ๋ฆฌ๊ฐ ์๋ค. ํฉํ ๋ฆฌ๋ด์์ if๋ฌธ์ ์์ ๊ณ ์ map์ ์ฌ์ฉํ์๋ค. ์ด ๊ณผ์ ์์ ์ฌ์ฉ๋ LineCreator, TriangleCreator, RectangleCreator๋ฅผ ์์์ํค๋ FigureCreator ์ธํฐํ์ด์ค๊ฐ ์กด์ฌํ๋ฉฐ, ์ด๊ฒ์ ๋จ์ํ create() ๋ฉ์๋ ๋ผ๋๋ง ๊ฐ๋๋ค. ์ด๋ ๊ฒ ๊ตฌํํ 1์ฐจ์ ์ธ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. (์์ธํ ์ฝ๋๋ git ์ปค๋ฐ๊ธฐ๋ก์ ๋ค์ฌ๋ค ๋ณผ ๊ฒ) ์๋์ LineCre..
- Total
- Today
- Yesterday
- Stack
- javascript
- JPA
- reversing
- C
- Algorithm
- ๊ฐ๋ฐ์
- ๋ฆฌ๋ฒ์ฑ
- bfs
- Java
- ํ๋ก๊ทธ๋๋จธ์ค
- mysql
- queue
- OneToMany
- ์ฐ์ํ ํ ํฌ์ฝ์ค
- Data Structure
- Android Studio
- Vo
- FRAGMENT
- ํ๊ณ
- sort
- Android
- brute-force
- ํด์ธ์ฌํ
- ์นํดํน
- graph
- socket
- dfs
- git
- webhacking.kr
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |