Computer Science/JAVA
JVM? GC? 는 무엇을 의미하는지 간단히 알아보기
JVM 이란 개요 Java Virtual Machine 의 줄임말로써 직역하면 자바 가상 머신이다. 자바는 초기 설계단계에서 어느 환경에서 동일하게 실행될 수 있는 것을 목표로 제작하였는데, 이를 위해서 JVM이 탄생하게 되었다. JAVA의 실행 과정 그렇다면 JVM이 어느 부분에서 사용될까? 아래에 자바의 실행 과정을 그림으로 표현하였다. 간단하게 보면 자바는 자바 코드를 먼저 컴파일을 통해 바이트 코드로 바꾸고 해당 코드를 JVM이 운영체제에 맞게끔 실행시켜주는 2단계 구조를 가지고 있다. 그래서 어느 환경이든 JVM만 설치된다면 동일하게 실행이 되어 같은 결과를 확인할 수 있다. 요약 그래서 쉽게 이야기하면 JVM은 바이트 코드로 변환된 자바 코드를 운영체제 환경에 맞게 실행시켜주는 도구 정도로 이..
자바 컬렉션 프레임워크(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) 정리
원래 한 게시글에 컬렉션 프레임워크를 전부 작성하려고 했는데 생각보다 글 작성에 시간이 오래 걸려서 분리하게 되었다. 그럼 이어서 SET에 해당되는 인터페이스에 대해 알아보자. 오늘 알아볼 부분은 아래와 같다. SET Set 인터페이스를 구현한 모든 Set 컬렉션 클래스의 성질은 다음과 같다. 요소의 저장 순서를 유지하지 않음 같은 요소의 중복 저장을 허용하지 않음 이와 같은 이유로 알고리즘에서 중복된 값을 분리해서 사용할 때 많이 사용하였다. 이전에 풀이했던 알고리즘 문제 중에 사용한 예시이다. [JAVA] 백준 2776 : 암기왕 문제 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험..
자바 컬렉션 프레임워크(Java Collection Framework) 중 리스트(List) 정리
오늘은 자바 Collection Framework 에 대해서 정리해보려고 한다. 이것 외에도 정리할 것이 산더미 같은데 일단 우선순위가 높은 것부터 시간 날 때마다 적어두어야지... Collection Framework 전체를 살펴보면 위 그림과 같다. 그림에 있는 것들 중 빨간 색으로 칠한 List를 먼저 알아보자. 컬렉션 프레임워크란 ? 자바에서 데이터를 저장하고 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것 즉, 사용자들이 이용하기 쉽게 정리해놓은 라이브러리라고 할 수 있다. 컬렉션 프레임워크의 인터페이스 간의 상속관계는 최상단의 그림과 같다고 볼 수 있다. 그중 가장 큰 줄기인 Collection에 속해있는 List, Set 그리고 Map이 무엇인지 어떤 것들이 있는지 알아보자. Coll..
[JAVA] 객체 지향 프로그래밍(Object Oriented Programing)
생각해보니 자바의 장단점 이후에 객체 지향 프로그래밍에 대해 한 번 정리하려고 했었는데, 당장 궁금한 것들이 너무 많아서 우선순위에서 밀려있었었다. 그래서 생각난 김에 간단하게 정리를 해보려고 한다. JAVA is A P. I. E 수업 때 위와 같이 외우면 잘 외워진다고 해서 메모해둔 '자바는 파이이다 !' 이다. APIE가 객체지향 프로그래밍의 대표적인 개념들이다. Abstraction (추상화) 객체들의 공통된 특성을 파악하여 정의해두는 것 예를 들어 자동차의 경우 기본적으로 움직이고 멈추는 것은 공통적인 특성이라고 할 수 있다. 하지만 세부적으로는 어떤 방식으로 움직이는지 멈추는지는 각 회사의 차량마다 다를 것이다. 그래서 공통된 특성을 일단 추상화해서 정의해두는 것을 의미한다고 생각하면 된다. ..