자바

    JVM? GC? 는 무엇을 의미하는지 간단히 알아보기

    JVM? GC? 는 무엇을 의미하는지 간단히 알아보기

    JVM 이란 개요 Java Virtual Machine 의 줄임말로써 직역하면 자바 가상 머신이다. 자바는 초기 설계단계에서 어느 환경에서 동일하게 실행될 수 있는 것을 목표로 제작하였는데, 이를 위해서 JVM이 탄생하게 되었다. JAVA의 실행 과정 그렇다면 JVM이 어느 부분에서 사용될까? 아래에 자바의 실행 과정을 그림으로 표현하였다. 간단하게 보면 자바는 자바 코드를 먼저 컴파일을 통해 바이트 코드로 바꾸고 해당 코드를 JVM이 운영체제에 맞게끔 실행시켜주는 2단계 구조를 가지고 있다. 그래서 어느 환경이든 JVM만 설치된다면 동일하게 실행이 되어 같은 결과를 확인할 수 있다. 요약 그래서 쉽게 이야기하면 JVM은 바이트 코드로 변환된 자바 코드를 운영체제 환경에 맞게 실행시켜주는 도구 정도로 이..

    [JAVA] Programmers : 배달

    문제 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 해결방법 N개의 마을이 있고 각 마을을 잇는 도로가 있다. 해당 도로를 건너는데 시간은 도로마다 다르다. 이때 1번 마을에서 각 마을에 배달을 하려고 하는데 K 시간 이하인 곳만 배달이 가능해서 배달 가능한 마을의 수를 구하는 문제이다. 문제를 보자마자 다익스트라가 떠올라서 다익스트라를 이용해서 풀이를 했다. 각 마을의 도로의 정보는 인접 리스트를 이용해서 정리하고, 다익스트라 배열을 마을 개수만큼 생성한 다음 문제에서 나올 수 있..

    [JAVA] Programmers : 피로도

    문제 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 해결방법 오랜만에 알고리즘 풀이를 들고 왔다. 사실 알고리즘은 꾸준히 풀고 있었는데 시간도 없고 귀찮아서 글은 쓰지 않고 있었다. 문제에 대해 이야기하자면 기본적인 순열 문제라고 볼 수 있다. 순열을 이용해서 던전의 모든 방문 순서를 찾고 해당 방문 순서에 몇 개의 던전이 탐색 가능한지 확인한다. 그다음 그중에서 가장 많은 던전을 방문한 횟수를 출력하면 된다. 코드 class Solution { static int[] result; static bo..

    자바 컬렉션 프레임워크(Java Collection Framework) 중 맵(MAP) 정리

    자바 컬렉션 프레임워크(Java Collection Framework) 중 맵(MAP) 정리

    자바 컬렉션 프레임워크의 마지막 맵을 정리 해보자. 맵은 아래 그림의 빨간 네모 안의 것들이다. Map Map은 Collection 과 큰 흐름이 달라서 구분되어있다. Map은 Key와 Value를 하나의 쌍으로 저장하는 방식을 사용한다. Map 인터페이스를 구현한 클래스들은 아래와 같은 특징을 가진다. 요소의 저장 순서를 유지하지 않음. 키는 중복을 허용하지 않지만, 값의 중복은 허용함. Map의 대표적인 메서드들은 다음과 같다. 타입 메서드 설명 void clear() 해당 맵의 모든 매핑을 제거 boolean containsKey(Object key) 해당 맵이 전달된 키를 포함하고 있는지를 확인 boolean contanisValue(Object value) 해당 맵이 전달된 값에 해당하는 하나 ..

    자바 컬렉션 프레임워크(Java Collection Framework) 중 셋(SET) 정리

    자바 컬렉션 프레임워크(Java Collection Framework) 중 셋(SET) 정리

    원래 한 게시글에 컬렉션 프레임워크를 전부 작성하려고 했는데 생각보다 글 작성에 시간이 오래 걸려서 분리하게 되었다. 그럼 이어서 SET에 해당되는 인터페이스에 대해 알아보자. 오늘 알아볼 부분은 아래와 같다. SET Set 인터페이스를 구현한 모든 Set 컬렉션 클래스의 성질은 다음과 같다. 요소의 저장 순서를 유지하지 않음 같은 요소의 중복 저장을 허용하지 않음 이와 같은 이유로 알고리즘에서 중복된 값을 분리해서 사용할 때 많이 사용하였다. 이전에 풀이했던 알고리즘 문제 중에 사용한 예시이다. [JAVA] 백준 2776 : 암기왕 문제 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험..