Java(50)
-
[Java] LinkedHashMap
HashMap은 put을 할때 순서를 보장하지 않는다. 순서를 보장하려면 LinkedHashMap을 이용한다.
2023.10.31 -
[Java] 나의 java-baseball의 개선점
interface를 만들고 그걸 구현해보자 controller에 모든 걸 담지 말고 기능별로 분리해서 class를 따로 만들자 예를 들어, judgement, errorhandling 이런 식으로 model, view, controller(judgement, errohandling)이고 이걸 다루는게 main application으로 하면 명확하다. 즉 main application이 controller가 되는 것이다!!! controller가 하나밖에 필요없어서 이렇게 하는 게 명확하다. github: https://github.com/WorldBestProgrammer/java-baseball-6/tree/WorldBestProgrammer GitHub - WorldBestProgrammer/java..
2023.10.29 -
[Java] Wrapper 클래스에 대한 나름의 이해
primitive를 감싸는 것을 의미한다. 예를 들어, int를 Integer로, boolean을 Boolean으로 float을 Float으로 감싼다. 이렇게 하는 이유는 제너릭을 사용하기 위함, return으로 null을 사용하기 위함이다. 또한 객체화되는 것이기 때문에 객체지향의 특성을 활용하기 위함이다. AutoBoxing: 아래와 같이 Integer.valueOf(1)로 변환하지 않아도 되는 것을 의미한다. 즉 파라미터 타입인 Integer로 캐스팅해준다. List lists = new ArrayList(); lists.add(1); AutoUnBoxing 아래와 같이 꺼낼 때 int로 받아도 자동으로 캐스팅해주는 것을 의미한다. ArrayList integerList = new ArrayList..
2023.10.01 -
[Java] Annotation에 대한 나름의 이해
Annotation은 컴파일러가 해석하기 편하도록 도와주는 역할을 한다. 예를 들어, @Override가 붙어 있으면 실제로 interface에 해당하는 메소드가 있느지를 확인해주어 메소드 이름이 같은지를 확인해준다. Annotation에는 세 가지 종류가 있다. built-in annotation: 이미 자바에 만들어져 있는 것이다. 대표적으로 @Override가 있다. meta annotation: annotation에 대한 정보를 담은 annotation이다. 언제까지 유지되느냐에 따라서 source, class, runtime으로 구분된다. custom annotation: 개발자가 직접 만든 annotation이다. Reference http://asfirstalways.tistory.com/3..
2023.09.24 -
[Java] Collection에 대한 나름의 이해
Map, List, Set, Stack, Queue 인터페이스와 그 구현체들의 모음을 collection 프레임워크라고 한다. collection 인터페이스를 상속받는 인터페이스에는 list, set, queue가 있다. list의 대표 구현체는 ArrayList이다. set의 대표적인 구현체는 HashSet이다. Queue는 new LinkedList로 해서 사용한다. stack은 직접 new를 해서 사용할 수 있다. map 인터페이스는 따로 있으면 대표적인 구현체로 HashMap이 있다. Reference https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Java https://gangnam-americano.tisto..
2023.09.23 -
[Java] GC에 대한 나름의 이해
GC 공간 힙이고 new, old, permanent 영역으로 구성된다. new는 eden과 두개의 survivor 영역으로 구성된다. eden은 최초로 만들어진 객체가 가는 곳이다. 이후 필요가 없어지면 처리되고 살아남으면 survivor에 가게 된다. survivor은 하나가 가득 차게 되면 정리를 하고 여기서 살아남은 것 중 오래된 것은 old에 가게 된다. 그리고 얼마 되지 않은 것은 다른 survivor에 가고 원래의 survivor은 비워진 상태로 존재하게 된다. 이게 반복된다. GC가 진행될 때는 stop-the-world가 발생하는데 GC 쓰레드를 제외한 모든 쓰레드가 멈추는 현상이다. 이때의 시간이 성능에 큰 영향을 미치는데 이를 줄이기 위한 방법론이 GC 튜닝이다. 만약 old에서 ne..
2023.09.22