[JAVA] MultiValueMap에 대해
2022. 12. 5. 11:10
Computer Science/JAVA
map의 종류 HashMap TreeMap LinkedHashMap HashMap Map의 기본 형태 key:value 중복된 key 허용하지 않음 데이터를 뽑을 때 Key를 기준으로 가져옴 마치 Key를 인덱스처럼 가져와 value를 가져오기 때문에 시간복잡도 O(1) TreeMap HashMap + 추가 옵션 데이터가 들어올 때마다 Key 값에 따라 자동 정렬 됨 Comparator 사용 LinkedHashMap HashMap + 추가 옵션 입력순서를 보장한다. 예를 들어, HashMap에 A B C 라는 순서로 입력했을 때, 맵에 있는 모든 값을 출력할때 A B C 라는 순서로 출력한다는 보장이 없다. LinkedHashMap은 이러한 입력 순서를 보장한다. MultiValueMap Spring에서..
코틀린(kotlin) 간단 정리
2022. 8. 12. 21:51
Computer Science
코틀린이란? Java와 같은 JVM에서 동작하는 오픈소스 프로그래밍 언어. Java와 유사하지만 더 간결한 문법과 다양한 기능이 있다. 코틀린의 시작 intelliJ, pycharm 등 IDE 툴을 만든 jetbrains사에서 2011년 개발한 언어이다. 2017년 구글에서 안드로이드 공식 언어로 채택하면서 코틀린이 개발 분야에서 크게 주목 받았고 2019년 Kotlin First를 언급하며 앞으로 코틀린을 최우선으로 사용하겠다고 언급하며 Java를 대체할 공식 언어로 급부상하게 되었다. 또한, Java뿐만 아니라 Javascript(kotlinJS), jquery에 대한 지원도 하고 있어 향후 발전 가능성이 매우 높은 언어라고 주목받고 있다. 코틀린의 목적 Java를 완전히 대체할 수 있는 언어가 되는..
[JAVA] 백준 24513 좀비 바이러스
2022. 3. 11. 01:30
알고리즘/백준 BOJ
24513번: 좀비 바이러스 여기 $N$ x $M$ 격자 모양의 마을이 있다. 어느 날 세상에 좀비 바이러스가 창궐하여 바이러스가 빠르게 퍼져나가버린다. 바이러스에 대해 조사한 결과 세 종류의 바이러스가 존재했으며 각각 $1$ www.acmicpc.net 풀이 방법 bfs가 한턴씩 지날 때마다 몇번째 방문인지 저장하기 위해 copy 배열을 만들었다. 처음은 첫번째 방문으로 가정해 1을 넣어주었다. 이렇게 턴을 돌 때마다 copy에 현재 몇번째 턴인지 저장해두었다. 만약 map[nx][ny]를 방문했을 때 copy[nx][ny]에 저장된 값과 현재 턴수가 같고, map[nx][ny]와 map[x][y]이 다르면 침범이 일어났다는 뜻이므로 map[nx][ny] 값을 3으로 바꿔주었다. 자바 코드 import..
[JAVA] JVM 메모리 구조와 가비지 컬렉션 #1
2022. 1. 16. 19:30
Computer Science/JAVA
면접때 자주 나오는 질문 하나인 JVM 메모리 구조와 가비지 컬렉선에 대해 알아보도록 하자! 우선 JVM의 메모리 구조를 설명하기 위해서는 JVM이 무엇인지 알아야 하고, 자바의 3대 구성요소에 대해 알아야 한다. 자바의 3대 구성 요소 - JDK(Java Development Kit): JRE에서 제공하는 실행 환경과 자바 개발에 필요한 여러가지 명령어와 컴파일러를 포함하는 소프트웨어 - JRE(Java Runtime Enviroment): 자바 소프트웨어를 실행하기 위한 소프트웨어. 클래스 라이브러리, 로더 클래스, JVM을 포함한다. - JVM(Java Virtual Machine): 자바 바이트 코드를 해석하고 실행하는 가상 머신 자바 바이트 코드란? 사용자 언어인 자바와 기계어 사이의 중간 언어..